李林APUE之进程的封装

本文解析了子进程如何作为父进程的副本被创建,包括数据空间、堆和栈的复制过程,以及代码段的共享机制。此外,还介绍了写时复制技术以提高效率,并探讨了子进程继承文件描述符的细节,最后分析了加不加-lpthread选项对于互斥量上锁阻塞的影响。

1.子进程是父进程的副本,获得父进程的数据空间/堆/栈,父子进程共享代码段.子进程从fork后開始运行。返回值=0表示子进程,由于子进程能够通过函数来获取父进程的ID,可是父进程无法知道子进程的ID.

2.为了提交效率,fork后,并不立马复制父进程的空间,而是採取写时复制(COW)的技术。也就是父进程或者子进程要改动数据段/堆/栈的时候,才进行复制操作,而且复制改动的区域.

3.子进程从父进程那里复制过来的文件描写叙述符,和父进程指向同一个文件对象,即共享了文件偏移量/标志等.

4.加不加-lpthread的差别。关于相互排斥量的上锁堵塞问题,是由于链接的时候强符号与弱符号以及动态链接库的选择问题。详细參见问题描写叙述及解决方式:点击打开链接

转载于:https://www.cnblogs.com/mfrbuaa/p/5067274.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值