当前位置: 技术问答>linux和unix
system函数的奇怪问题,进来看看!
来源: 互联网 发布时间:2016-06-28
本文导语: char szCmdLine[256]; strcpy(szCmdLine, "iostat -xnp 1 2 > /tmp/diskstats"); printf("1rn"); system(szCmdLine); 发现经常停在这一行没响应,有时则可以顺利过去,是什么原因?(在命令行下执行这字符串是可以的) printf("2rn"); 是solaris sp...
char szCmdLine[256];
strcpy(szCmdLine, "iostat -xnp 1 2 > /tmp/diskstats");
printf("1rn");
system(szCmdLine); 发现经常停在这一行没响应,有时则可以顺利过去,是什么原因?(在命令行下执行这字符串是可以的)
printf("2rn");
是solaris spac环境,csh外壳
strcpy(szCmdLine, "iostat -xnp 1 2 > /tmp/diskstats");
printf("1rn");
system(szCmdLine); 发现经常停在这一行没响应,有时则可以顺利过去,是什么原因?(在命令行下执行这字符串是可以的)
printf("2rn");
是solaris spac环境,csh外壳
|
我没有Solaris这个环境测试
但是你的代码没有问题呀 我在CentOS下都是像你这么用的
而且你的代码(把命令改了 因为你那个要执行的命令在CentOS里没有) 我在CentOS下运行了10次是没有问题的
所以你本身那个命令是不是不合理啊
或者你别的代码对这段代买有什么影响?
但是你的代码没有问题呀 我在CentOS下都是像你这么用的
而且你的代码(把命令改了 因为你那个要执行的命令在CentOS里没有) 我在CentOS下运行了10次是没有问题的
所以你本身那个命令是不是不合理啊
或者你别的代码对这段代买有什么影响?
|
到底是 system 本身出问题,还是 szCmdLine 执行时出问题
手工执行 szCmdLine 没问题的话,可以确定一下两种方式下的相关环境变量
手工执行 szCmdLine 没问题的话,可以确定一下两种方式下的相关环境变量
|
直接试一下system("iostat -xnp 1 2 > /tmp/diskstats");
看看什么现象
看看什么现象
|
个人愚见,应用程序用用多了system()不是很稳定。尽量找相对应的函数来实现吧,追踪源码就可以找到答案。
统计读写,删除,统计文件都有相对应的系统函数来实现,不一定要系统命令的。
统计读写,删除,统计文件都有相对应的系统函数来实现,不一定要系统命令的。