关于Linux下的system()调用

来源:互联网 发布:禾田软件怎么样 编辑:程序博客网 时间:2024/04/28 08:46

程序里偶尔会用到system()函数,执行些脚本,不过把这个调用放在循环里调时,system()的返回结果经常为-1,

但它调的命令却是执行了。

有点奇怪,于是上网找了个system()的源码,贴下看看:

 

 

从上面这段代码,不难看出:

1. system()的返回值不是cmd的返回值

2. 当返回-1时,cmd不一定没有执行,有可能是folk出错,还有可能是在父进程里调waitpid()时出错。

 

好像很多人建议尽量用popen()代替system(),嗯,如果要是发现popen()有什么值得注意之处再来说说。

原创粉丝点击