国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Linux Shell > 正文

Linux 編程之進程fork()詳解及實例

2020-07-27 18:56:17
字體:
來源:轉載
供稿:網友

Linux fork()詳解:

在開始之前,我們先來了解一些基本的概念:

1. 程序, 沒有在運行的可執(zhí)行文件  

   進程,  運行中的程序   

2. 進程調度的方法:  

    按時間片輪轉  
    先來先服務 
    短時間優(yōu)先 
    按優(yōu)先級別   

3. 進程的狀態(tài):       

        就緒   ->>   運行  ->> 等待 
        運行 ->> 就緒 //時間片完了 
        等待 ->> 就緒 //等待的條件完成了   

查看當前系統進程的狀態(tài) ps auxf 

status: 

D    Uninterruptible sleep (usually IO) 
R    Running or runnable (on run queue) 
S    Interruptible sleep (waiting for an event to complete) 
T    Stopped, either by a job control signal or because it is being traced. 
W    paging (not valid since the 2.6.xx kernel) 
X    dead (should never be seen) 
Z    Defunct ("zombie") process, terminated but not reaped by its parent. 
<    high-priority (not nice to other users) 
N    low-priority (nice to other users) 
L    has pages locked into memory (for real-time and custom IO) 
s    is a session leader 
l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) 
+    is in the foreground process group   

4. 父進程/子進程 , 讓一個程序運行起來的進程就叫父進程, 被調用的進程叫子進程   

5. getpid //獲取當前進程的進程號 
   getppid //獲取當前進程的父進程號   

6. fork //創(chuàng)建一個子進程,創(chuàng)建出來的子進程是父進程的一個副本, 除了進程號,父進程號不同。  

    子進程從fork()后開始運行, 它得到的fork返回值為0 
    父進程得到的返回值為子進程的進程號 
    返回值為-1時, 創(chuàng)建失敗

來看一個程序:

#include <stdio.h> #include <unistd.h>  int main(void) {   pid_t pid ;    //printf("hello world /n");    //從fork開始就已經產生子進程   pid = fork();  //就已經產生新的4G空間,復制空間   //創(chuàng)建出來的子進程是父進程的一個副本,除了進程號,父進程號和子進程號不同   //printf("hello kitty/n");   if(pid == 0)     {     //子進程運行區(qū)      printf("child curpid:%d parentpid:%d /n" , getpid() , getppid());     return 0 ;    }    //父進程運行區(qū)   printf("parent curpid:%d parentpid:%d /n" , getpid() , getppid());    return 0 ;  } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿勒泰市| 济南市| 二手房| 沂南县| 黄石市| 昌都县| 普陀区| 鄂托克旗| 遵义县| 雅江县| 淅川县| 霍林郭勒市| 承德县| 南昌市| 内乡县| 嫩江县| 扶沟县| 义马市| 英山县| 白城市| 民丰县| 盐池县| 汝州市| 苏尼特右旗| 铜山县| 宁化县| 甘肃省| 阿拉善盟| 九寨沟县| 阜新市| 兴和县| 安庆市| 于田县| 江油市| 习水县| 边坝县| 盖州市| 上犹县| 交城县| 乐安县| 襄城县|