• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 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)。而該進程是不絕不會退出的。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【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

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲熟女少妇一区二区三区视频 | 亚洲日本在线中文字幕dvd | 亚洲最新在线免费观看 | 日本亚洲欧美国产ay | 思思99热九九在线播放 | 一本久久a精品一区二区 |

            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)。而該進程是不絕不會退出的。