摘要:
1.fork和vfork的区别: 1.vfork()保证子进程先运行,在他调用exec或exit之后父进程才能被调度运行 2.vfork子进程在执行exec或exit之前运行在父进程地址空间。 2.如果多个进程同时结束,可能造成回收不完全,产生僵尸进程(同中信号不派对) 解决方案:利用循环 进行wa 阅读全文
posted @ 2018-04-19 22:42
edan
阅读(112)
评论(0)
推荐(0)
摘要:
步骤: 1.设置创建文件屏蔽字 <控制新建文件权限> 2.fork产生孤儿进程 <保证不会是组长进程 确保setsid成功调用> 3.调用setsid脱离控制终端 <脱离控制终端>//建立一个新会话 4.更改工作路径到'/' <防止意外的占用挂载路径 导致无法正常卸载> 5.关闭不用的文件描述符 并 阅读全文
posted @ 2018-04-19 22:31
edan
阅读(490)
评论(0)
推荐(0)
摘要:
1.等待回收的两个函数wait()和waitpid()函数 1.1 wait(int *status)的用法:阻塞函数,等待任意一个子进程的返回。 *wait(NULL):对子进程的结束状态不关心; *wait(status) 可以通过statu查看子进程的结束状态。 int statu; wait 阅读全文
posted @ 2018-04-19 19:18
edan
阅读(571)
评论(0)
推荐(0)
摘要:
1.父进程创建多个并列的子进程a-->[a1,a2,a3,a4......] 如父进程创建四个子进程,用一个for循环,父进程用来创建子进程,子进程被创建后执行自己的任务。 #define NR 4 for(i=0;i<4;i++) { pid=fork()//child process if(pi 阅读全文
posted @ 2018-04-19 11:15
edan
阅读(155)
评论(0)
推荐(0)

浙公网安备 33010602011771号