有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。
一、system()函数调用
system函数的原型为:
#include
int system (const char *string);
它的作用是,运行以字符串参数的形式传递给它的命令并等待该命令的完成。命令的执行情况就如同在shell中执行命令:sh -c string。如果无法启动shell来运行这个命令,system()函数返回错误代码127;如果是其他错误,则返回-1。否则,system()函数将返回该命令的退出码。
注意:system()函数调用用一个shell来启动想要执行的程序,所以可以把这个程序放到后台中执行,这里system()函数调用会立即返回。
可以先运行下面的例子,源文件为new_ps_system.c,代码如下:
#include
#include
int main()
{
printf("Running ps with system");
// ps进程结束后才返回,才能继续执行下面的代码
system("ps au");// 1
printf("ps Done&#