Linux11 进程替换

本文详细解释了进程复制的fork操作,涉及文件操作的系统调用(如open、read、write、close),以及父进程与子进程共享文件的方法。同时对比了系统调用与库函数的区别,以exec系列函数为例说明进程替换的过程。
摘要由CSDN通过智能技术生成

1、fork复制进程:

pid_t pid=fork(&a);

文件操作的系统调用:open read write close

2、父进程打开的文件fork后,子进程中使用

3、先打开文件再进行复制,父进程和子进程轮流对文件进行操作,共享文件

4、先复制再到开文件,父进程和子进程分别对文件进行操作

5、文件描述符

6、文件表   1024

7、 文件表:

     第一行列:下标

  1. 标准输入
  2. 标注输出
  3. 标准错误输出
  4. 文件

8、每一个进程都会有一个进程控制块PCB,是一个结构体,有多少个进程就有多少个进程控制块

9、进程复制:先复制进程控制块,再复制进程

10、系统调用(2)和库函数(3)的区别:

库函数的是实现在库里,属于用户自己的代码,系统调用就是内核中的函数,编译内核的时候就实现了他,系统调用的函数用户可以指定,内核中的函数,用户无法指定

  1. 系统调用是一个桥梁,一旦使用就会从用户态切换到内核
  2. 进程替换:把一个进程替换成另外一个进程
  3. fork+exec复制再替换,把父进程的信息传递给子进程,直接创造需要填充一些信息
  4. execl(库函数)  execl(“”路径”,”ps”,”-f”,(char*)0);
  5. execlp(库函数)   execlp(“ps”,”ps”,”-f”,(char*)0);//放在环境变量中
  6. execve(库函数)
  7. execv(库函数)
  8. execvp(库函数)
  9. execve 系统调用//都是用库函数去调用execve

执行成功没有返回值,直接从替换成功的地方终止,不成功会继续执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值