成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linuxc關于進程等待的代碼

下面資料是關于linux c 關于進程等待的內(nèi)容,希望能對碼農(nóng)有較大好處。

站在用戶的角度思考問題,與客戶深入溝通,找到永川網(wǎng)站設計與永川網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋永川地區(qū)。

#include <sys/types.h>
#include <stdio.h>
#include <sys/wait.h>

void check_exit(int status);

main()
{
    pid_t pid;
    int status;
    if((pid = fork()) < 0)
    {
    printf("fork error!!n");
    exit(0);
    }
    else if(pid == 0)
    {
    printf("child process exitn");
    exit(0);
    }
    else
    {
        if(wait(&status) != pid)
        {
        printf("wait error!!");
        exit(0);
        }
        check_exit(status);
    }

}
void check_exit(int status)
{
    if(WIFEXITED(status))
        printf("eixtn");

    else if(WIFSIGNALED(status))
        printf("killed by signaln");
    else if(WIFSTOPPED(status))
        printf("stopped by signaln");
    else if(WIFCONTINUED(status))
        printf("continued");
}

等待進程改變其狀態(tài)。所有下面哪些調(diào)用都被用于等待子進程狀態(tài)的改變,獲取狀態(tài)已改變的子進程信息。狀態(tài)改變可被認為是:1.子進程已終止。2.信號導致子進程停止執(zhí)行。3.信號恢復子進程的執(zhí)行。在子進程終止的情況下,wait調(diào)用將允許系統(tǒng)釋放與子進程關聯(lián)的資源。如果不執(zhí)行wait,終止了的子進程會停留在"zombie"狀態(tài)。如果發(fā)現(xiàn)子進程改變了狀態(tài),這些調(diào)用會立即返回。反之,調(diào)用會被阻塞直到子進程狀態(tài)改變,或者由信號處理句柄所中斷(假如系統(tǒng)調(diào)用沒有通過sigaction的SA_RESTART標志重啟動)。wait系統(tǒng)調(diào)用掛起當前執(zhí)行中的進程,直到它的一個子進程終止。waitpid掛起當前進程的執(zhí)行,直到指定的子進程狀態(tài)發(fā)生變化。默認,waitpid只等待終止狀態(tài)的子進程,但這種行為可通過選項來改變。waitid系統(tǒng)調(diào)用對于等待哪個子進程狀態(tài)改變提供了更精確的控制。子進程已終止,父進程尚未對其執(zhí)行wait操作,子進程會轉入“僵死”狀態(tài)。內(nèi)核為“僵死”狀態(tài)的進程保留最少的信息量(進程標識,終止狀態(tài),資源使用信息),過后父進程執(zhí)行wait時可以獲取子進程信息。只要僵死的進程不通過wait從系統(tǒng)中移去,它將會占據(jù)內(nèi)核進程表中的一個欄位。如果進程表被填滿,內(nèi)核將不能再產(chǎn)生新進程。如果父進程已終止,它的僵死子進程將由init進程收養(yǎng),并自動執(zhí)行wait將它們移去。wait(等待子進程中斷或結束)

#include<sys/types.h>

#include<sys/wait.h>

函數(shù)說明wait()會暫時停止目前進程的執(zhí)行(掛起父進程),直到有信號來到或子進程結束。如果在調(diào)用wait()時子進程已經(jīng)結束,則wait()會立即返回子進程結束狀態(tài)值。子進程的結束狀態(tài)值會由參數(shù)status返回,而子進程的進程識別碼也會一快返回。如果不在意結束狀態(tài)值,則參數(shù)status可以設成NULL。如果調(diào)用wait的進程沒有子進程則會調(diào)用失敗,子進程的結束狀態(tài)值請參考waitpid()如果執(zhí)行成功則返回子進程識別碼(PID),如果有錯誤發(fā)生則返回-1。失敗原因存于errno中。

本文題目:linuxc關于進程等待的代碼
URL網(wǎng)址:http://jinyejixie.com/article40/pgiiho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計、微信公眾號、小程序開發(fā)、搜索引擎優(yōu)化、網(wǎng)站建設網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
宿迁市| 甘泉县| 阳西县| 衡阳县| 儋州市| 淳安县| 永春县| 密山市| 库伦旗| 图们市| 南召县| 洪泽县| 榆社县| 永年县| 榆社县| 湛江市| 龙江县| 武功县| 衢州市| 红河县| 沁水县| 佛冈县| 五寨县| 甘南县| 修武县| 周至县| 翁牛特旗| 平安县| 绥德县| 龙泉市| 漳平市| 廉江市| 荥经县| 浪卡子县| 克东县| 永修县| 齐齐哈尔市| 墨竹工卡县| 昔阳县| 榆林市| 德江县|