Linux下利用fork()創建子進程并使父進程等待子進程結束
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
int status;
pid_t t = fork();
if(t){
waitpid(t, &status, 0);
}else{
system("vi temp.txt");
exit(0);
}
//父進程和子進程均執行完畢后繼續執行下去
分析過程:
if 和 else 還是選擇分支。
主要的原因是,fork() 函數調用一次,返回兩次。兩次返回的區別是:子進程的返回值是0,父進程返回值為新子進程的進程ID。返回后,父進程執行waitpid(t, &status, 0)等待子進程結束,而子進程進入另一個分支執行system("vi temp.txt");exit(0);,父子間并不沖突,可以形容這段代碼父進程與子進程都執行了一次判斷。RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
主要的原因是,fork() 函數調用一次,返回兩次。兩次返回的區別是:子進程的返回值是0,父進程返回值為新子進程的進程ID。返回后,父進程執行waitpid(t, &status, 0)等待子進程結束,而子進程進入另一個分支執行system("vi temp.txt");exit(0);,父子間并不沖突,可以形容這段代碼父進程與子進程都執行了一次判斷。RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成