linux怎么用system函数返回值
linux怎么用system函数返回值详细介绍
在 Linux 系统中,system 函数在 <stdlib.h> 头文件里被定义,其作用是执行一个 shell 命令。下面为你详细介绍 system 函数返回值的相关情况与使用方法。
返回值情况
- 如果
fork失败或者无法创建子进程:system函数会返回 -1,并且会设置errno来表明错误原因。 - 如果 shell 不能被执行:在这种情形下,返回值就如同 shell 以状态 127 退出一样。
- 如果成功执行:
system函数返回的是 shell 的终止状态。该状态的具体情况需要借助WIFEXITED、WEXITSTATUS、WIFSIGNALED、WTERMSIG等宏来解析。
使用示例
下面给出一个 C 语言示例,展示如何使用 system 函数并处理其返回值:
c
status
status
status
status
status
status
status
代码解释
- 调用
system函数:status = system("ls -l");这行代码调用system函数执行ls -l命令,并且把返回值存于status变量中。 - 检查返回值:
- 若
status为 -1,表明fork失败或者无法创建子进程,这时使用perror函数输出错误信息。 - 若
WIFEXITED(status)为真,说明命令正常退出,使用WEXITSTATUS(status)获取退出状态。 - 若
WIFSIGNALED(status)为真,说明命令被信号终止,使用WTERMSIG(status)获取终止信号的编号。
- 若
通过上述步骤,你就能正确使用 system 函数的返回值,从而判断命令执行的状态。