linux的子进程调用exec( )系列函数
2015-07-21 20:06
676 查看
exec( )函数族 :
下面我们来看看一个进程如何来启动另一个程序的执行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename)、参数列表(argv)以及环境变量(envp)。exec函数族当然不止一个,但它们大致相同,在Linux中,它们分别是:execl,execlp,execle,execv,execve和execvp,下面我只以execlp为例,其它函数究竟与execlp有何区别,请通过manexec命令来了解它们的具体情况。
一个进程一旦调用exec类函数,它本身就"死亡"了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。(不过exec类函数中有的还允许继承环境变量之类的信息。)
下面我们来看看一个进程如何来启动另一个程序的执行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(filename)、参数列表(argv)以及环境变量(envp)。exec函数族当然不止一个,但它们大致相同,在Linux中,它们分别是:execl,execlp,execle,execv,execve和execvp,下面我只以execlp为例,其它函数究竟与execlp有何区别,请通过manexec命令来了解它们的具体情况。
一个进程一旦调用exec类函数,它本身就"死亡"了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。(不过exec类函数中有的还允许继承环境变量之类的信息。)
相关文章推荐
- Linux下printf格式化输出颜色及定位
- linux在虚拟机联网问题
- Linux的sys接口和proc接口创建
- Linux基础
- 第十三章、facl及用户及Linux终端
- Linux USB Gadget--软件结构
- Linux 环境变量
- 最全面的linux信号量解析
- Linux/Unix系统编程手册--SOCKET章节读书笔记
- Linux设备驱动开发基础
- Linux自学笔记:03_用户管理和目录结构
- Linux下按照时间和大小生成新文件的程序流程及其C代码实现
- Linux最大文件打开数使用经验详解
- Selinux SeAndroid
- Linux学习随笔--再次接触
- 如何在Linux系统Ubuntu版本下安装Python开发包NumPy、Matplotlib、SciPy
- linux: 几个常用makefile模板
- 如何使用Linux块设备分区创建ASM(使用UDEV,而非ASMLIB)
- 怎样往linux社区提交代码
- 查看Linux服务器性能指标