Linux笔记记录3 exec
来源:互联网 发布:长州藩 知乎 编辑:程序博客网 时间:2024/06/05 11:39
(≡ω≡.)笔记记得乱七八糟的 整理的时候总是发表完才想起来好像少了什么。
------------------------------------------------------------------------------------------------
看完fork就要轮到exec函数族了。
其实我们用fork创建完子进程后还需要调用一种exec函数,fork+exec得到的才是一个新的进程。
其实这个过程是这样的`fork得到的子进程继承了父进程数据、堆和栈的副本(并不共享存储空间!)
所以它相当于父进程的一个副本,由于现在的fork具有写时拷贝功能,只有要修改数据时他才会进行拷贝。
通过exec函数,可以将子进程替换为一个新的程序,也就是说正文、数据、堆、栈都替换了!
值得注意的是,这个新程序不改变进程id,它是从main开始执行的。
先来认识一下exec函数族的成员们:
#include <unistd.h>
int execl(const char *pathname,const char *arg0,.../*(char *)0*/);
int execv(const char *pathname,char *const argv[]);
int execle(const char *pathname,const char *arg0,.../*(char *)0,char *const envp[]*/);
int execve(const char *pathname,char *const argv[],char *const envp[]);
int execlp(const char *filename,const char *arg0,.../*(char *)0*/);
int execvp(const char *filename,char *const argv[]);
Execl、execlp execle
参数个数可变,但每个参数要单独说明
Execv、execvp,execve
先构造一个指向各参数的指针数组作为参数。
他们都会把argv传给main
Execlp、execvp
通过搜索path环境变量查找文件路径
于是接下来又是栗子啦,偷个懒 直接截图
//a.c QAQ为什么我的用户名水印后面跟着一串和我企鹅号不一样的数字啊啊啊啊
//bbb.c QAQ为什么我的用户名水印后面跟着一串和我企鹅号不一样的数字啊啊啊
-----------------------------------------------------------------------------------------------------------
栗子2,这次实现一个ps -f的功能:
- Linux笔记记录3 exec
- Linux find exec 记录
- linux exec
- linux-exec
- linux exec
- Linux exec
- linux 学习记录笔记
- Linux学习笔记记录
- linux find命令-exec参数的使用说明(笔记)
- find命令的exec参数使用---Linux学习笔记
- exec函数族笔记
- 笔记 exec方法
- Linux 相关笔记记录1
- Linux笔记记录2 do_fork
- 【Linux笔记】常用面试记录
- Linux exec函数族
- Linux exec函数族
- linux find exec rm
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- JS 设计模式--继承
- oracle存储过程、声明变量、for循环
- 死链是怎样产生的
- python-2 字符串
- Linux笔记记录3 exec
- 收获,不止SQL优化——抓住SQL的本质--第十二章
- 如何理解用信息熵来表示最短的平均编码长度
- Django编写RESTful API(四):认证和权限
- myeclipse 10 安装反编译
- R语言求解线性回归方程
- RF新手常见问题总结--(基础篇)
- 2017年伊始,你需要尝试的25个Android第三方库
- SpringMVC学习(七)-JSR303数据校验