我有一个应用程序,在某些时候调用
system("/usr/sbin/iptables -t nat F")
刷新ip表。由于应用程序是多线程的并且由多个开发人员开发,因此在某些时候iptables停止了设置。事实证明,我无法为外部流程提供午餐(也没有成功地试过system("/bin/ls")
)。这些命令可以从shell运行而没有任何问题。
无论调用哪个命令,我都会得到返回值-1
。有没有办法获得更多关于失败原因的信息?
答案 0 :(得分:3)
尝试在errorno
电话后打印出system
或其描述性字符串。添加以下内容:
#include <errno.h>
system("/bin/ls");
printf ("Error: %s\n",strerror(errno));
可能会提供更多详细信息。