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

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

    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: %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變為了 1.說明父進程退出后的子進程由 init 超級進程1領養。而該進程是不絕不會退出的。

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

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

    Linux系統守護進程的啟動方法09-11

    關于linux查看進程ps top區別06-11

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

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

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

    常見系統進程大全07-26

    如何避免出現僵尸進程09-27

    php多進程編程詳解201706-04

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

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      一区二区免费高清观看国产丝瓜 | 免费一区二区三区免费视频 | 五月天在线视频国产在线二 | 亚洲欧美日韩66 | 亚洲国产综合色九九。 | 亚洲美女国产精品久久久久 |