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

Diagnosing issues with the system(command) call?

本文关键字:问题 调用 命令 诊断系统      更新时间:2023-10-16

我有一个应用程序在某个时刻调用

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

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

无论调用什么命令,我都会得到返回值-1。是否有办法获得更多的信息,为什么这是失败的?

尝试在system调用后打印errorno或其描述字符串。添加以下内容:

#include <errno.h>
system("/bin/ls");
printf ("Error: %sn",strerror(errno));

可能会给你更多细节