Linux system函数

来自个人维基
跳转至: 导航搜索

首先说明一下,ANSI C有定义system函数:

#include <stdlib.h>

int system(const char* cmdstring);

如果cmdstring为空指针,则仅当命令处理程序可用时,system才返回非0值,这一特征可以决定在一个给定的操作系统上是否支持system函数。

返回值:

因为system在其实现中调用了 fork, exec和 waitpid,而其返回值只能有一个,所以其值可以分为以下几种情况:

1.fork失败,返回-1

2.exec失败(无法执行shell),返回值与exit(127)一样

3.waitpid失败,除EINTR之外的错误,返回-1

4.以上三个函数均执行成功,返回shell的终止状态