大佬教程收集整理的这篇文章主要介绍了为什么是$? system()被调用后总是0?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
// foo.c #include <stdio.h> #include <stdlib.h> int main(int argc,char* argv[]) { int n = system(argv[1]); printf("%dn",n); return n; }
不pipe馈送到命令行是什么, echo $? 总是打印0,例如:
$ ./foo anything sh: anything: not found 32512 $ echo $? 0
我的问题是:为什么不$? 采取与n相同的价值? 我也tesTing了Win32下的程序, echo %errorlevel%给出了与n相同的值。 谢谢!
真的,真正基本的交叉编译C程序
我如何创build一个无需用户交互即可自行更新的Windows服务
在Windows中locking文件
/ dev / random总是返回相同的序列
Windows Mobile 6.5 C#开发:从哪里开始?
这个叫什么名字?
如何知道什么版本的Firefox安装?
在boost :: locale :: conv中获取用户的代码页名称
Windows Vista用户validation
如果以八进制或十六进制打印n ,则会发现它的低字节始终为0。
如果你return WEXITSTATUS(n); ,你的程序将以你所期望的状态退出。
阅读man system和man wait仔细man wait ,你会明白。
只有返回值的低8位被识别为退出状态,因为退出状态由WEXITSTATUS宏计算,参见SUSv4
以上是大佬教程为你收集整理的为什么是$? system()被调用后总是0?全部内容,希望文章能够帮你解决为什么是$? system()被调用后总是0?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。