C中system()的返回值

Ron*_*nin 10 c return system

system()在C中使用命令来执行像sc query mysql或的命令net start mysql.

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

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

San*_*raj 11

您需要做的就是man system了解更多信息system()

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

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


A4L*_*A4L 10

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


nos*_*nos 5

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

退出代码通常仅具有以下惯例:退出代码0表示成功,非零表示失败。对于各种退出代码的实际含义,它们是每个程序所特有的,然后程序员会一时兴起。您将必须查找正在运行的特定程序的文档(尽管通常没有文档,因此您必须通读源代码)