久久九九国产无码高清_人人做人人澡人人人爽_日本一区二区三区中文字幕_日韩无码性爱免费

Linux下子進程與父進程的關系

時間:2024-10-10 01:33:15 Linux認證 我要投稿
  • 相關推薦

Linux下子進程與父進程的關系

  我們知道,Linux下父進程可以使用fork 函數(shù)創(chuàng)建子進程,但是當父進程先退出后,子進程會不會也退出呢?到底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: %s\n", 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 = %d\n", getpid(), getppid(), ++x);

  12 sleep(3);

  13

  14 printf("child: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), ++x);

  15 exit(0);

  16 }

  17

  18 printf("parent: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), --x);

  19

  20 }

  通過 gcc fork.c basic.c -o fork 編譯即可的 fork 程序。 運行 ./fork

  可以看出父進程首先退出,退出前child的PPID為12256, 退出后子進程的PPID變?yōu)榱?1.說明父進程退出后的子進程由 init 超級進程1領養(yǎng)。而該進程是不絕不會退出的。

【Linux下子進程與父進程的關系】相關文章:

Linux進程關系最新解讀201609-09

Linux系統(tǒng)守護進程的啟動方法09-11

關于linux查看進程ps top區(qū)別06-11

多進程OSPF及進程號的意義05-18

Linux讓進程在后臺可靠運行的幾種方法09-08

圍棋棋局的進程劃分10-02

常見系統(tǒng)進程大全07-26

如何避免出現(xiàn)僵尸進程09-27

php多進程編程詳解201706-04

DOS中判斷進程是否存在的方法07-05