linux的子进程调用exec( )系列函数
2023-09-11 14:14:10 时间
exec( )函数族 :
以下我们来看看一个进程怎样来启动还有一个程序的运行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其參数包含文件名称(filename)、參数列表(argv)以及环境变量(envp)。exec函数族当然不止一个。但它们大致同样,在Linux中,它们各自是:execl,execlp。execle,execv,execve和execvp,以下我仅仅以execlp为例,其他函数到底与execlp有何差别,请通过manexec命令来了解它们的详细情况。
一个进程一旦调用exec类函数,它本身就"死亡"了。系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号。也就是说,对系统而言,还是同一个进程,只是已经是还有一个程序了。
以下我们来看看一个进程怎样来启动还有一个程序的运行。在Linux中要使用exec函数族。系统调用execve()对当前进程进行替换,替换者为一个指定的程序,其參数包含文件名称(filename)、參数列表(argv)以及环境变量(envp)。exec函数族当然不止一个。但它们大致同样,在Linux中,它们各自是:execl,execlp。execle,execv,execve和execvp,以下我仅仅以execlp为例,其他函数到底与execlp有何差别,请通过manexec命令来了解它们的详细情况。
一个进程一旦调用exec类函数,它本身就"死亡"了。系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号。也就是说,对系统而言,还是同一个进程,只是已经是还有一个程序了。
(只是exec类函数中有的还同意继承环境变量之类的信息。
)
相关文章
- Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
- [Linux] Linux进程PID散列表
- Windows SubSystem for Linux(WSL)设置默认和设置默认登陆用户
- linux里面的fork函数创建一个新进程
- Linux进程间通信(三):匿名管道 popen()、pclose()、pipe()、close()、dup()、dup2()
- Linux进程间通信(二):信号集函数 sigemptyset()、sigprocmask()、sigpending()、sigsuspend()
- Linux 如何通过命令仅获取IP地址
- Symantec Backup Exec 2012 Agent For Linux安装
- Linux进阶04:cheat--命令的栗子
- Linux基础之linux常用命令之文本替换
- Linux进程管理之结束与进程名称相匹配的进程(sh脚本)
- Linux 普通进程 后台进程 守护进程
- linux egrep命令使用示例
- Linux的进程状态
- 精确度量Linux下进程占用多少内存的方法
- Linux网络配置之虚拟网卡的配置(ubuntu 16.04)案例
- 从四个问题透析Linux下C++编译&链接
- Linux(ubuntu) 添加快捷方式到桌面——qtcreator创建快捷方式
- 【Linux 内核 内存管理】内存映射原理 ② ( 内存映射概念 | 文件映射 | 匿名映射 | 内存映射原理 | 分配虚拟内存页 | 产生缺页异常 | 分配物理内存页 | 共享内存 | 进程内存 )
- 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
- 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )
- 【Linux 内核】编译 Linux 内核 ③ ( 安装 ncurses | 安装 flex | 安装 bison | 打开 Linux 内核编译配置菜单 )
- Linux下进程的同步相互排斥实例——生产者消费者
- linux学习之八---Linux进程基础知识
- L72.linux命令每日一练 -- 第十章 Linux网络管理命令 -- mail和nslookup
- L40.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- useradd和usermod
- linux top命令及结果详解 top -p 查看Linux程序运行进程