在程序中执行一个命令字符串很方便。

ISOC定义了system函数,但是其操作对系统的依赖性很强。POSIX.1包括了system接口,它扩展了ISOC定义,描述了system在POSIX.1环境中的运行行为。

#include <stdlib.h>
int system(const char *cmdstring);

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

使用system而不是直接使用fork和exec的优点是:system进行了所需的各种出错处理以及各种信号处理。

如果一个进程正以特殊的权限(设置用户ID或设置组ID)运行,它又想生成另一个进程执行另一个程序,则它应当直接使用fork和exec,而且在fork之后、exec之前要改回普通权限。设置用户ID或设置组ID程序决不应调用system函数。

results matching ""

    No results matching ""