繁体   English   中英

C中system()的返回值

[英]return value of system() in C

我在C中使用system()命令来执行sc query mysqlnet start mysql等命令。

如果参数为空指针,则在cmd处理器正常时返回1,否则返回0.在成功执行命令时,返回0。

我的问题是:我可以获得其返回值的列表吗? 就像命令无效或返回值不成功时返回的内容一样? 我想根据system()的返回值做不同的事情。

你需要做的就是man system了解更多关于system()

说明 system()通过调用/ bin / sh -c命令执行命令中指定的命令,并在命令完成后返回。 在执行命令期间,SIGCHLD将被阻止,SIGINT和SIGQUIT将被忽略。

返回值错误时返回的值为-1(例如fork(2)失败),否则返回命令的返回状态。 后一种返回状态采用wait(2)中指定的格式。 因此,命令的退出代码将是WEXITSTATUS(状态)。 如果无法执行/ bin / sh,则退出状态将是退出(127)的命令的退出状态。 如果command的值为NULL,则system()如果shell可用则返回非零值,否则返回0。

由于docs state system()返回-1如果为要执行的命令创建新进程失败,否则返回执行命令的退出代码。 这是使用echo $?检索的相同值echo $? 在shell中执行相同的命令后,在Windows中的unix或echo %ERRORLEVEL% 因此,如果要处理返回值,则必须查看执行的命令返回的内容。

system()返回您启动的进程的退出代码。

退出代码通常只有退出代码为0表示成功而非零表示失败的约定。 对于各种退出代码的实际含义,它们特定于每个程序,然后是程序员的心血来潮。 您将不得不查找正在运行的特定程序的文档(虽然通常没有记录,因此您必须阅读源代码)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM