青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

10.7 SIGCLD semantics

Posted on 2009-04-14 15:40 Prayer 閱讀(889) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

10.7 SIGCLD semantics

SIGCLD是在system v的系列版本中使用的一個信號。SIGCHLDBSD系列版本中使用的信號,他們的意義有所不同,其中SIGCLD應(yīng)該被禁用。其原因如下:

() system SIGCLD

SVR4是從system v發(fā)展出來的,它使用SIGCLD的方法(如下都以signalsigset函數(shù)作為signal安裝函數(shù))

1.被推薦的使用SIGCLD的方法

設(shè)置SIGCLDSIG_IGN,這樣生成的孩子process在退出后不會生成zombia

2.不被推薦的使用方法

就是默認(rèn)的對SIGCLD的處理方法,即SIG_DFL,子進(jìn)程結(jié)束后不處理,如果父親wait的話,會等所有的孩子進(jìn)程結(jié)束后才返回-1errno=ECHLD。這不是推薦的。

 

可見在System v系列里,對SIGCLD的使用推薦使用SIG_IGN

 

3system vSIGCLD的一個被詬病的地方

就是當(dāng)用signal安裝SIGCLDhandler的時候,他會立馬檢查當(dāng)前是否有孩子進(jìn)程可以被waited,如果有,就立馬調(diào)用handler這會造成stack overflow,例如:我們用signal安裝handler的時候,經(jīng)常在signal handler里面首先將handler reinstall, 好,當(dāng)有一個子進(jìn)程結(jié)束了,發(fā)送了SIGCLD信號,該handler被調(diào)用,reinstall handler, 立馬檢查是否有可以waited的進(jìn)程,有,立馬調(diào)用handler, ….如此循環(huán),不久死掉了么.

如下就是例子代碼:

Figure 10.6. System V SIGCLD handler that doesn't work

#include      "apue.h"

#include      <sys/wait.h>

 

static void sig_cld(int);

 

int

main()

{

    pid_t   pid;

 

    if (signal(SIGCLD, sig_cld) == SIG_ERR)

        perror("signal error");

    if ((pid = fork()) < 0) {

        perror("fork error");

    } else if (pid == 0) {      /* child */

        sleep(2);

        _exit(0);

    }

    pause();    /* parent */

    exit(0);

}

 

static void

sig_cld(int signo)   /* interrupts pause() */

{

    pid_t   pid;

    int     status;

 

    printf("SIGCLD received\n");

    if (signal(SIGCLD, sig_cld) == SIG_ERR) /* reestablish handler */

        perror("signal error");

    if ((pid = wait(&status)) < 0)      /* fetch child status */

        perror("wait error");

    printf("pid = %d\n", pid);

}

 

可見system v系列不能給SIGCLD安裝handler,那么就只能采用推薦的方法SIG_IGN了。使其子進(jìn)程壓根不產(chǎn)生zombia.

 

(二)SIGCHLD

linux里,用signal安裝SIGCHLD,且將handler置為SIG_IGN,也會達(dá)到是子進(jìn)程退出后不產(chǎn)生zombia的好處。而默認(rèn)的我們不處理該信號,就會產(chǎn)生zombiaBSD系列就是這樣。

如下是摘自linux suse man page的一段話:

POSIX.1-1990 disallowed setting the action for SIGCHLD to SIG_IGN.  POSIX.1-2001 allows this  possibility, so that ignoring SIGCHLD can be used to prevent the creation of zombies (see wait(2)).  Nevertheless, the historical BSD and System V behaviors for ignoring SIGCHLD differ, so that  the  only  completely  portable  method  of ensuring that terminated children do not become zombies is to catch the SIGCHLD signal and perform a wait(2) or similar.

鑒于不同平臺的對SIGCHLD的設(shè)置成SIG_IGN的意義的不同,唯一的更portable的避免zombia的方法是在SIGCHLDhandler里面調(diào)用wait

(三)使不產(chǎn)生zombia孩子的另一個方法

使用sigaction并設(shè)置SA_NOCLDWAIT標(biāo)記

 

(四)在包括linux在內(nèi)的一些平臺,SIGCLD被宏定為SIGCHLD,放心使用

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产主播精品在线| 亚洲国产成人在线播放| 亚洲欧美综合精品久久成人| 夜夜嗨av一区二区三区| 国产精品videosex极品| 欧美影院成人| 狂野欧美一区| 一区二区三区视频在线播放| 亚洲一区二区在线视频| 国产主播精品| 亚洲国产三级| 欧美午夜在线视频| 久久精品综合| 欧美大片在线看免费观看| 亚洲一区二区三区激情| 久久都是精品| 日韩视频一区二区三区在线播放| 在线视频亚洲| 亚洲电影在线观看| 一本久久综合| 韩国一区电影| 妖精成人www高清在线观看| 国产亚洲精品bv在线观看| 欧美激情一区二区三级高清视频| 欧美日韩一区二区免费在线观看| 久久精品亚洲精品| 欧美精品在线一区二区| 久久福利一区| 欧美日本高清视频| 麻豆91精品| 国产精品日产欧美久久久久| 欧美国产日韩精品免费观看| 国产精品美女黄网| 亚洲日本电影在线| 激情国产一区| 国产精品99久久久久久久久| 亚洲国产精品久久精品怡红院| 亚洲一级特黄| 99热在线精品观看| 久久精品国产一区二区三区| 亚洲欧美日韩中文视频| 欧美成人免费全部| 可以免费看不卡的av网站| 国产精品卡一卡二卡三| 亚洲欧洲综合另类| 亚洲国产精品黑人久久久| 午夜在线成人av| 午夜在线一区| 国产精品日日摸夜夜添夜夜av| 亚洲精品视频在线观看免费| 在线免费观看一区二区三区| 久久高清国产| 久久精品国产清高在天天线| 国产精品视频精品视频| 一区二区三区不卡视频在线观看 | 亚洲欧美日韩国产综合精品二区| 99精品免费| 欧美激情91| 91久久精品美女高潮| 亚洲黄色小视频| 裸体女人亚洲精品一区| 久久综合色婷婷| 激情亚洲网站| 久久久久久91香蕉国产| 麻豆成人小视频| 在线观看视频一区| 免费欧美日韩| 亚洲电影免费| 一级成人国产| 欧美午夜在线| 亚洲在线一区| 久久久久久9| 永久免费精品影视网站| 美女图片一区二区| 亚洲国产精品国自产拍av秋霞 | 国产噜噜噜噜噜久久久久久久久 | 亚洲日本成人网| 亚洲美女一区| 国产精品啊v在线| 亚洲欧美另类国产| 久久久久久尹人网香蕉| 亚洲激情网站| 欧美午夜一区二区| 欧美亚洲在线视频| 欧美成人免费小视频| 一本色道**综合亚洲精品蜜桃冫| 欧美揉bbbbb揉bbbbb| 午夜精品久久久久久久男人的天堂| 欧美亚洲日本一区| 悠悠资源网亚洲青| 欧美日韩一区二区免费视频| 亚洲欧美国产三级| 欧美高清在线视频| 亚洲一级特黄| 影音先锋中文字幕一区| 欧美精品午夜| 午夜视频久久久久久| 亚洲国产另类 国产精品国产免费| 亚洲一区欧美一区| 在线不卡亚洲| 国产精品美女久久| 免费成人网www| 亚洲午夜羞羞片| 欧美激情中文字幕在线| 亚洲欧美日韩精品久久久| 亚洲国产精品成人一区二区 | 欧美日韩另类一区| 欧美一区二区三区视频免费| 亚洲黑丝在线| 久久精品国产99国产精品| 亚洲精选成人| 好看的日韩av电影| 国产精品日韩| 欧美久久久久久久久久| 久久久久久夜| 亚洲综合精品四区| 亚洲精品欧洲| 欧美国产乱视频| 久久久久国产成人精品亚洲午夜| 艳女tv在线观看国产一区| 在线成人h网| 国内精品久久久久久影视8| 国产精品久久婷婷六月丁香| 欧美激情a∨在线视频播放| 久久久综合网| 欧美一区国产二区| 亚洲综合色丁香婷婷六月图片| 亚洲蜜桃精久久久久久久| 亚洲国产精品激情在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲欧美激情视频| 99在线观看免费视频精品观看| 亚洲第一精品在线| 在线观看一区二区视频| 国内偷自视频区视频综合| 国产一区二区三区精品欧美日韩一区二区三区| 欧美日韩国语| 欧美人与性动交cc0o| 欧美激情第4页| 欧美激情a∨在线视频播放| 蜜桃伊人久久| 免费久久99精品国产| 免费国产自线拍一欧美视频| 麻豆精品在线播放| 久久综合狠狠综合久久激情| 久久亚洲综合| 欧美www视频在线观看| 欧美国产精品人人做人人爱| 欧美激情 亚洲a∨综合| 欧美人与禽性xxxxx杂性| 欧美日韩国产麻豆| 国产精品久久99| 国产午夜精品理论片a级大结局| 国产欧美精品在线播放| 国内精品久久久久久久影视蜜臀| 国产一区久久久| 亚洲激情视频在线观看| 99国产精品久久久久老师| 亚洲视频在线二区| 亚洲欧美日韩精品| 久久久免费精品视频| 亚洲高清视频中文字幕| 日韩视频免费观看| 亚洲欧美乱综合| 久久全球大尺度高清视频| 欧美精品v日韩精品v国产精品| 欧美午夜精品理论片a级按摩| 国产精自产拍久久久久久| …久久精品99久久香蕉国产| 亚洲精品影视| 欧美中文日韩| 亚洲大胆在线| 亚洲一区免费看| 美女精品在线观看| 欧美日韩伊人| 在线观看欧美日韩国产| 99热免费精品在线观看| 久久久国产一区二区| 亚洲精品国精品久久99热| 香蕉免费一区二区三区在线观看 | 国产亚洲一区在线| 亚洲国产精品成人| 小处雏高清一区二区三区| 欧美激情91| 亚洲欧美视频一区| 欧美激情一区二区久久久| 国产伦精品一区二区三区在线观看 | 黄色一区二区三区四区| 亚洲免费激情| 久久婷婷久久| 亚洲天堂男人| 欧美—级a级欧美特级ar全黄| 国产午夜精品在线| 亚洲视频自拍偷拍| 欧美激情一区二区久久久| 先锋资源久久| 欧美午夜精品久久久久久人妖 | 国产美女一区二区| 一本综合精品| 亚洲第一精品福利|