新聞中心
linux中的等待函數(shù)wait.??可以進程之間的同步等待,用來阻塞主進程,等待子進程的結果,從而對其從結果進行控制。wait函數(shù)會暫停當前進程的執(zhí)行,直到其中的任務子進程執(zhí)行完畢,或者滿足某些條件為止,也就是說主進程只有等待子進程執(zhí)行結束,才能返回值。

成都創(chuàng)新互聯(lián)公司專注于洪湖企業(yè)網(wǎng)站建設,響應式網(wǎng)站,成都做商城網(wǎng)站。洪湖網(wǎng)站建設公司,為洪湖等地區(qū)提供建站服務。全流程按需定制開發(fā),專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
wait函數(shù)原型為:int wait(int *status)。其中status為指針,指向接收此函數(shù)返回值的變量。wait函數(shù)有如下兩種使用方式:
一種是waitPID,其用法如下:
int waitpid(pid_t pid, int *status, int options);
其中pid為指定的子進程的進程標識符,status為接收返回值的變量的指針,options指定等待的選項。
另一種是wait,其用法如下:
int wait(int *status);
其中status為接收返回值的變量的指針,表示不指定任何子進程。
接下來我們以一段waitpid函數(shù)的代碼為例,對wait函數(shù)做一個詳細解析:
pid_t pid = fork();
if (pid == -1) {
printf("Error: Forking failed!");
exit(1);
}
else if (pid == 0) {
printf("Child process.\n");
exit(0);
}
else {
int status;
waitpid(pid, &status, 0);
printf("Following process has finished with the exit code %d\n", status);
}
首先,它通過fork()函數(shù)創(chuàng)建了一個子進程,并且把子進程的進程標識符保存到了pid中。然后,它檢查這個子進程是否創(chuàng)建成功,若成功,則進入else分支。在else中,它使用waitpid函數(shù),等待由pid表示的子進程結束,并將結束返回值保存在status中(如果子進程未結束,則會暫停在這里等待)。最后,將結束返回值打印出來。
以上就是linux中的等待函數(shù)wait的深度解析。wait函數(shù)的使用非常方便,正確使用它可以讓進程更好地控制子進程的結果。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
文章題目:有關等待Linux:wait函數(shù)深度解析(waitlinux)
本文來源:http://m.fisionsoft.com.cn/article/cdoheee.html


咨詢
建站咨詢
