在两台linux运行system函数调用shell命令,两台机器都能看到shell命令执行后的结果。但是函数返回值不同!

一台返回正常:0。
另一台异常:-1,error=10 not child processes。请问,这台异常是什么原因,怎么处理?
出错的机器原来运行也正常,因为是公共机器,多人使用。现在出现这个问题,才到另外机器测试,但测试正常。不这道出错的机器,系统做了什么改动?
system调用的是系统命令,无法自行修改返回值。

system返回值描述
-1 创建失败或者程序的退出状态无法获得,也就是fork或者waitpid失败
127 执行程序失败,也就是exec失败
其他表示程序的退出状态(楼主说的shell命令是脚本吗,是的话可以看看其exit状态。不要是-1哦)

看楼主描述的样子可能是执行system的时候fork()成功了,但是后面步骤如waitpid出了问题,可以自己用其他方式比如fork+exec+waitpid来模拟一下system过程,看哪里的问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-30
我也遇到同样类似的问题,明明system调用,执行也成功了,我把执行结果保存在日志文件里了。所有的结果都表明,执行是成功了,可是system怎么返回都是-1 。
我觉得应该还是跟系统有关系。
第2个回答  2011-10-14
有的结果都表明,执行是成功了,可是system怎么返回都是-1 。
我觉得应该还是跟系统有关系。
第3个回答  2011-09-30
应该和环境变量有关系,提示没有子进程
第4个回答  2011-09-30
linux下system函数调用shell命令后,怎样让主进程不等子进程返回,接着执行(方法1:在传入system()的参数字符串结尾加

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网