诊断系统(命令)调用问题?

时间:2015-05-29 11:32:45

标签: c++ c

我有一个应用程序,在某些时候调用

system("/usr/sbin/iptables -t nat F")

刷新ip表。由于应用程序是多线程的并且由多个开发人员开发,因此在某些时候iptables停止了设置。事实证明,我无法为外部流程提供午餐(也没有成功地试过system("/bin/ls"))。这些命令可以从shell运行而没有任何问题。

无论调用哪个命令,我都会得到返回值-1。有没有办法获得更多关于失败原因的信息?

1 个答案:

答案 0 :(得分:3)

尝试在errorno电话后打印出system或其描述性字符串。添加以下内容:

#include <errno.h>

system("/bin/ls");
printf ("Error: %s\n",strerror(errno));

可能会提供更多详细信息。