溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

[Linux進程]使用vfork創(chuàng)建子進程并且執(zhí)行命令

發(fā)布時間:2020-07-17 14:07:33 來源:網(wǎng)絡(luò) 閱讀:679 作者:銀河星君 欄目:編程語言
/*這是一個其分別利用子進程和父進程對一個count進行計數(shù)并且輸出,
用于展示父進程和子進程是共享一個數(shù)據(jù)段*/
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc,char *argv[])
{
   int count = 1;
   int child;
   printf("此時執(zhí)行的是父進程,當前count的值是:%d\n", count);   //創(chuàng)建子進程之前
   if(!(child = vfork()))   //創(chuàng)建子進程
     {  
        //由于子進程會首先執(zhí)行,以下為子進程執(zhí)行過程
        int i;
        for(i = 0; i < 100; i++)
          {
             printf("這是子進程, 當前i的值是: %d\n", i);   //反復輸出打印結(jié)果
             if(i == 8)
             exit(1);
          }
         printf("這是子進程,其進程ID是%d count的值是: %d\n", getpid(), ++count);
         exit(1);  //退出子進程
      }
    else
     {  //父進程執(zhí)行區(qū)
         printf("這是父進程,其進程ID是%d count的值是: %d, 其子進程是: %d\n", getpid(), count, child);
      }
return 0;
}


向AI問一下細節(jié)
AI