Linux下子进程与父进程的关系
我们知道,Linux下父进程可以使用fork 函数创建子进程,但是当父进程先退出后,子进程会不会也退出呢?到底Linux下父进程和子进程的关系如何呢?下文为大家分享最新代码如下:
通过下面这个小实验,我们能够很好的看出来:
复制代码
/******** basic.c ********/
1 #include "basic.h"
2
3 pid_t Fork(void)
4 {
5 pid_t pid = fork();
6 if (pid < 0) {
7 fprintf(stderr, "Fork error: %sn", strerror(errno));
8 exit(0);
9 }
10
11 return pid;
12 }
复制代码
1 ********** basic.h ***********
2
3 #ifndef __CSAPP_BASIC_H
4 #define __CSAPP_BASIC_H
5
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 /* function definition concerned with basic.c */
13 pid_t Fork();
14
15 #endif
复制代码
1 ******* fork.c *********
2
3 #include "basic.h"
4
5 int main()
6 {
7 int pid = Fork();
8 int x = 2;
9
10 if (pid == 0) {
11 printf("child: pid = %d, ppid = %d, x = %dn", getpid(), getppid(), ++x);
12 sleep(3);
13
14 printf("child: pid = %d, ppid = %d, x = %dn", getpid(), getppid(), ++x);
15 exit(0);
16 }
17
18 printf("parent: pid = %d, ppid = %d, x = %dn", getpid(), getppid(), --x);
19
20 }
通过 gcc fork.c basic.c -o fork 编译即可的 fork 程序。 运行 ./fork
可以看出父进程首先退出,退出前child的'PPID为12256, 退出后子进程的PPID变为了 1.说明父进程退出后的子进程由 init 超级进程1领养。而该进程是不绝不会退出的。
-
计算机二级MS OFFICE考试试题2016
2016年9月计算机二级等级考试6月正在报名中,下面本站小编先为大家分享最新二级MSOFFICE考试试题及答案解析如下:1、汉字的区位码由一汉字的区号和位号组成。其区号和位号的范围各为______。A、区号1-95位号1-95B、区号1-94位号1-94C、区号0-94位号0-94D、区号0-9...
-
2016年计算机等级考试试题「三级、四级」
计算机等级考试是全国性的,你准备参加了吗?本文为大家分享的三四级的计算机考试试题,希望对同学们复习有所帮助!三级网络技术1在现实中,一般我们一般将计算机分类为A)服务器、工作站、台式机、笔记本、掌上电脑B)大型机、小型机、个人计算机、工作站、巨型计算机C...
-
2016年计算机等级考试二级笔试试卷「完整」
一、选择题((1)—(40)题每小题1分,(41)—(50)题每小题2分,共和60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)在计算机中,一个字长的二进制位数是A)8B)16C)32D)随CPU的型号而定(...
-
2017年计算机二级MSOffice上机操作题及答案
2017年NCRE继续实施2013年版考试大纲(部分科目有修订),大纲和教材详情可查询本网站大纲教材栏目。下面是小编收集的计算机二级MSOffice上机操作题及答案,希望可以帮助大家!一、字处理题请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操...