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

Prayer

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

10.7 SIGCLD semantics

Posted on 2009-04-14 15:40 Prayer 閱讀(890) 評論(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.不被推薦的使用方法

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

 

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

 

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

就是當(dāng)用signal安裝SIGCLDhandler的時候,他會立馬檢查當(dāng)前是否有孩子進程可以被waited,如果有,就立馬調(diào)用handler這會造成stack overflow,例如:我們用signal安裝handler的時候,經(jīng)常在signal handler里面首先將handler reinstall, 好,當(dāng)有一個子進程結(jié)束了,發(fā)送了SIGCLD信號,該handler被調(diào)用,reinstall handler, 立馬檢查是否有可以waited的進程,有,立馬調(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了。使其子進程壓根不產(chǎn)生zombia.

 

(二)SIGCHLD

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

如下是摘自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最新网址| 亚洲区一区二| 亚洲一区二区成人在线观看| 国产无一区二区| 欧美韩国一区| 欧美揉bbbbb揉bbbbb| 久久黄色影院| 欧美freesex8一10精品| 亚洲专区在线| 久久久久久久网| 亚洲人成网站精品片在线观看| 亚洲精品久久久久久久久久久久 | 欧美日韩久久精品| 欧美在线视频一区二区| 久久婷婷国产综合国色天香| 艳女tv在线观看国产一区| 亚洲视频中文| 亚洲国产精品精华液网站| 一本久久a久久免费精品不卡| 欧美视频一二三区| 牛人盗摄一区二区三区视频| 欧美性天天影院| 欧美.日韩.国产.一区.二区| 国产精品久久久久久久久久三级| 久久天天躁夜夜躁狠狠躁2022| 欧美sm极限捆绑bd| 久久久一区二区| 欧美特黄a级高清免费大片a级| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久人人精品| 午夜在线a亚洲v天堂网2018| 欧美国产日韩一区二区在线观看| 欧美在线免费视频| 欧美三级乱人伦电影| 免费在线亚洲| 国产在线播放一区二区三区| 一区二区成人精品 | 国内成人精品2018免费看| 亚洲日本成人在线观看| 亚洲电影一级黄| 亚洲欧美日韩精品久久| 亚洲图片激情小说| 欧美精品一区二区三区高清aⅴ| 两个人的视频www国产精品| 国产欧美视频在线观看| 一本色道久久综合| 正在播放欧美视频| 欧美粗暴jizz性欧美20| 欧美激情精品久久久久久久变态| 国产一区二区0| 欧美在线高清视频| 久久久91精品国产| 国产性色一区二区| 性久久久久久久久久久久| 亚洲欧美日韩在线播放| 国产精品国产三级国产a| 中文日韩在线视频| 亚洲欧美中日韩| 国产欧美日韩另类视频免费观看| 亚洲天堂激情| 欧美伊人影院| 国产在线不卡| 噜噜噜久久亚洲精品国产品小说| 美腿丝袜亚洲色图| 91久久久亚洲精品| 欧美精品自拍| 在线视频一区二区| 欧美在线二区| 黄色亚洲网站| 欧美成人一区二区| 日韩网站免费观看| 欧美影院久久久| 一区二区三区在线观看欧美 | 99在线|亚洲一区二区| 亚洲永久免费av| 国产亚洲欧美一区二区| 久久青草福利网站| 最新亚洲视频| 欧美一区二区三区四区在线观看| 国模套图日韩精品一区二区| 久久综合中文| 亚洲精品欧美| 久久久97精品| 99国内精品| 国产一区二区三区免费观看 | 亚洲影视九九影院在线观看| 久久超碰97中文字幕| 亚洲成色777777在线观看影院| 免费观看久久久4p| 亚洲自拍都市欧美小说| 美女主播一区| 亚洲欧美视频一区| 亚洲国产精品一区| 国产欧美激情| 欧美 日韩 国产一区二区在线视频| 一本久道久久综合中文字幕| 久久伊人亚洲| 亚洲一区二区在线播放| 在线电影国产精品| 欧美涩涩视频| 久久综合九色九九| 亚洲字幕在线观看| 亚洲狼人综合| 欧美成人国产| 久久久久久欧美| 亚洲专区欧美专区| 日韩一级大片在线| 好看不卡的中文字幕| 国产精品免费观看视频| 欧美精品偷拍| 美女免费视频一区| 久久精品国产免费| 亚洲淫性视频| 亚洲色在线视频| 亚洲日本va午夜在线影院| 你懂的成人av| 久久综合国产精品| 久久久国际精品| 欧美一区激情视频在线观看| 在线一区二区三区四区五区| 亚洲精品久久久久| 在线播放日韩欧美| 国内精品视频666| 国产午夜精品美女毛片视频| 国产精品成人观看视频免费| 欧美美女日韩| 欧美日韩国产小视频| 欧美暴力喷水在线| 男人的天堂亚洲在线| 蜜桃伊人久久| 欧美成人免费视频| 欧美黑人国产人伦爽爽爽| 老牛影视一区二区三区| 欧美a级理论片| 欧美激情精品久久久久久黑人 | 欧美精品久久久久久久久老牛影院| 麻豆成人精品| 欧美成人有码| 欧美日韩免费观看一区二区三区| 欧美激情亚洲一区| 欧美日韩高清免费| 欧美深夜福利| 国产精品一区二区三区成人| 国产深夜精品福利| 狠狠色丁香婷婷综合影院| 国产一区日韩欧美| 在线观看欧美日韩国产| 亚洲精品乱码久久久久久按摩观| 亚洲精品在线免费观看视频| 亚洲作爱视频| 久久激情中文| 免费美女久久99| 亚洲另类在线视频| 亚洲一级黄色av| 久久久久久91香蕉国产| 欧美暴力喷水在线| 国产精品久久77777| 国产日韩一区二区| 亚洲国产综合视频在线观看| 日韩午夜电影av| 欧美专区在线播放| 欧美成人午夜免费视在线看片 | 久久久久久9| 欧美激情国产高清| 一区二区三区四区蜜桃| 久久爱www| 欧美精品激情| 国内不卡一区二区三区| 日韩亚洲国产欧美| 久久久久久伊人| 亚洲人成人一区二区在线观看 | 亚洲激情婷婷| 亚洲欧美日韩国产综合在线| 欧美 日韩 国产在线| 国产精品久久久久久久免费软件| 国内外成人在线| 亚洲天堂av图片| 欧美国产综合视频| 性欧美大战久久久久久久久| 欧美/亚洲一区| 韩日成人在线| 亚洲欧美国产77777| 亚洲丰满少妇videoshd| 亚洲欧美综合另类中字| 欧美日韩在线视频一区二区| 国产亚洲欧美日韩日本| 亚洲特级片在线| 亚洲日本黄色|