我有一个应用程序在某些时候调用
system("/usr/sbin/iptables -t nat F")
刷新ip表。由于应用程序是多线程的,并且由多个开发人员开发,因此在某个时候iptables停止了设置。结果发现,我无法利用外部流程(也尝试过
system("/bin/ls")
但没有成功)。这些命令可以从shell运行,没有问题。不管调用什么命令,我都会得到返回值
-1
。有没有办法得到更多的信息来解释为什么会失败? 最佳答案
尝试在调用errorno
之后打印出system
或其描述性字符串。添加以下内容:
#include <errno.h>
system("/bin/ls");
printf ("Error: %s\n",strerror(errno));
可能会给你更多的细节。