免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發新帖
查看: 38050 | 回復: 3
打印 上一主題 下一主題

[C] linux 僵死進程疑惑 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發表于 2020-03-15 23:27 |只看該作者 |倒序瀏覽
本帖最后由 tianhailong 于 2020-03-15 23:34 編輯

Linux中可以通過 signal(SIGCHLD, SIG_IGN); 來避免僵死進程
/**********************/
#include <stdio.h>
#include <unistd.h>
#include <signal.h>

int main() {
        signal(SIGCHLD, SIG_IGN);
        int pid = fork();
        if (pid == 0) {
                int i = 0;
                while (i < 5) {
                        ++i;
                }
        }
        else if (pid > 0) {
                while (1)
                        sleep(1);
        }
        else{
                printf("the error \n");
        }
        return 0;
}

/********************/

有點疑惑,SIGCHLD 信號默認就是忽略,那么有沒有 signal(SIGCHLD, SIG_IGN) 這句應該沒有區別,因為SIGCHLD 信號本來的處理方式就是忽略,但是沒有 signal(SIGCHLD, SIG_IGN)  就會產生僵死進程,很疑惑,希望大家幫忙答疑解惑哈

論壇徽章:
18
2 [報告]
發表于 2020-03-28 01:33 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽

論壇徽章:
0
3 [報告]
發表于 2020-06-11 15:53 |只看該作者
回復 1# tianhailong

默認操作不是簡簡單單的忽略和主動設置忽略是不一樣的操作。
默認操作是:
1. 忽略信號;
2. 終止程序。

論壇徽章:
0
4 [報告]
發表于 2021-10-11 15:58 |只看該作者
謝謝,受教了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則 發表回復

  

北京盛拓優訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP
   日韩综合区视频第一页导航,无码JK粉嫩小泬在线观看,午夜精品A片一区二区三区,日日躁夜夜躁狠狠躁麻豆,大胆国模,免费观看无遮挡www的网站