linux的子进程调用exec( )系列函数

Posted cxchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的子进程调用exec( )系列函数相关的知识,希望对你有一定的参考价值。

exec( )函数族 :
   以下我们来看看一个进程怎样来启动还有一个程序的运行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其參数包含文件名称(filename)、參数列表(argv)以及环境变量(envp)。exec函数族当然不止一个。但它们大致同样,在Linux中,它们各自是:execl,execlp。execle,execv,execve和execvp,以下我仅仅以execlp为例,其他函数到底与execlp有何差别,请通过manexec命令来了解它们的详细情况。
   一个进程一旦调用exec类函数,它本身就"死亡"了。系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号。也就是说,对系统而言,还是同一个进程,只是已经是还有一个程序了。

(只是exec类函数中有的还同意继承环境变量之类的信息。



以上是关于linux的子进程调用exec( )系列函数的主要内容,如果未能解决你的问题,请参考以下文章

(疑问)进程控制---vfork 函数

如何重定向 fork() 创建的子进程的 IO 并使用 exec() 函数?

fork和exec函数

exec函数族

perl fork() exec() ,子进程变得狂野

exec函数族实例解析