免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2362 | 回复: 0
打印 上一主题 下一主题

大侠们帮帮忙,很急 对进程环境子进程退出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-09 17:20 |只看该作者 |倒序浏览
大侠们帮帮忙,很急,我的程序是多进程的,主进程有一个变量统计子进程数量,在创建进程时会加1,子进程退出时,信号处理函数会减1 ,但我程序跑了一天,发现这个变量和实际的子进程数不一致。

信号处理函数是这样的,static void chld_handler(int s, siginfo_t *infop, void *ptr)
{

    int stat;
    //~D~PZ个~[~P~L~W[0m~
    while ((waitpid(-1, &stat, WNOHANG))>0)
        cur_process--;
    errno = 0;
}

在设置信号时,sigaction指定了SA_RESTART|SA_SIGINFO;
我记得,程序在处理SIGCHLD的时候,会阻塞SIGCHLD,并且SA_SIGINFO标志会保证实时行为有保证,但似乎和我想的不一样,谁能给点建议啊,如果不行我就用别的办法了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP