中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Linux的fork函數使用實例分析

發布時間:2022-02-18 09:24:25 來源:億速云 閱讀:129 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Linux的fork函數使用實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Linux的fork函數使用實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一個進程,包括代碼、數據和分配給進程的資源。fork()函數通過系統調用創建一個與原來進程幾乎完全相同的進程,也就是兩個進程可以做完全相同的事,但如果初始參數或者傳入的變量不同,兩個進程也可以做不同的事。

一個進程調用fork()函數后,系統先給新的進程分配資源,例如存儲數據和代碼的空間。然后把原來的進程的所有值都復制到新的新進程中,只有少數值與原來的進程的值不同。相當于克隆了一個自己。

Linux的fork函數使用實例分析

實例:

/*************************************************************************
   > File Name: fork_test.c
   > Author:
   > Mail:
   > Created Time: 2016年06月06日 星期一 09時29分05秒
************************************************************************/#include   #include   int main ()  
{  
   pid_t fpid; //fpid表示fork函數返回的值  
   int count=0;
       fpid=fork();  
       if (fpid printf("error in fork!");  
       else if (fpid == 0) {  
           printf("child process| process id= %d | fpid= %d |parentid = %d \n",getpid(),fpid,getppid());  
           count++;  
       }  
       else {  
           printf("parent process| process id= %d | fpid = %d |parentid = %d\n",getpid(),fpid,getppid());  
           count++;  
       }
       printf("統計結果是: %d \n",count);  
       getchar();
       return 0;
}  123456789101112131415161718192021222324252627
Linux的fork函數使用實例分析

?

fork出錯可能有兩種原因: 1)當前的進程數已經達到了系統規定的上限,這時errno的值被設置為EAGAIN。 2)系統內存不足,這時errno的值被設置為ENOMEM。

二、fork進階知識

?

實例

   #include      #include      int main(void)  
   {  
      int i=0;  
      printf("i son/pa ppid pid  fpid \n");  
      //ppid指當前進程的父進程pid  
      //pid指當前進程的pid,  
      //fpid指fork返回給當前進程的值  
      for(i=0;iif(fpid==0)  
              printf("i=%d | child  ppid=%4d |pid=%4d |fpid=%4d \n",i,getppid(),getpid(),fpid);  
          else  
              printf("i=%d | parent ppid=%4d |pid=%4d |fpid=%4d  \n",i,getppid(),getpid(),fpid);  
      }        
      getchar();
      return 0;  
   }  
1234567891011121314151617181920

?

運行結果

Linux的fork函數使用實例分析

?

查看進程

Linux的fork函數使用實例分析

?

分析 Linux的fork函數使用實例分析

讀到這里,這篇“Linux的fork函數使用實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

斗六市| 府谷县| 衡山县| 荃湾区| 上饶县| 禹州市| 庆安县| 宝应县| 庆城县| 肇庆市| 明光市| 玛纳斯县| 兰考县| 玉田县| 邹城市| 龙川县| 讷河市| 萨迦县| 观塘区| 宁晋县| 赣州市| 厦门市| 黑水县| 岐山县| 阳城县| 河津市| 黎城县| 彰化县| 青神县| 罗甸县| 竹山县| 密山市| 涞源县| 易门县| 绵竹市| 日照市| 辽阳县| 江孜县| 德兴市| 金沙县| 遂川县|