android fork 子进程,fork子进程

这篇博客介绍了在Android中如何使用fork创建子进程,强调了fork后父子进程的执行顺序不确定性,以及子进程返回0而父进程获得子进程PID的事实。内容还涉及到僵尸进程的产生与避免,以及多进程编程中的潜在问题和解决方案。示例代码展示了fork的基本用法,讨论了子进程间通信和父进程对变量的影响,提到了epoll在fork子进程中的注意事项。
摘要由CSDN通过智能技术生成

title: fork子进程

data: 2019/3/21 20:24:39

toc: true

这里实在学习socket编程前的小知识点,用来创建多个服务端

学习文档

速记

fork并不保证父子进程的执行顺序,会存在父进程先比子进程结束,这个时候子进程的就可能由系统进程1( PID为 1 的 init)接管

子进程返回 0

父进程返回子进程的进程号 (PID)

粗浅的理解就是fork之后创建了一个一模一样的上下文,子进程也是从下一句话开始的,只不过fork获得的返回值在子进程中得到的是0

简单代码

#include

#include

#include

int main()

{

pid_t pid1;

pid_t pid2;

printf("%d\n", 1);

pid1 = fork();

printf("%d\n", 2);

pid2 = fork();

printf("pid1:%d, pid2:%d\n", pid1, pid2);

}

这里会打印

1

2

2

pid1:2101, pid2:2102

pid1:2101, pid2:0

pid1:0, pid2:2103

pid1:0, pid2:0

也就是fork后从此处就有两个同样的进程开始了

僵尸进程signal(SIGCHLD, SIG_IGN)

SIGCHLD信号,子进程结束时, 父进程会收到这个信号。如果父进程没有处理这个信号,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值