close(0)后直接退出

来源:2-9 服务程序的调度

Oarrrr

2022-06-28

你好,为什么我在close 0 1 2的时候就会直接退出,而你在视频里的程序却仍然能执行呢,但我在ubutun20.04和centos7上使用你的procctl.cpp也是直接退出,我查了文档,说关闭STDIN_FILENO和STDOUT_FILENO会导致不可预测的行为吗,我只有修改成以下才能运行,但请问为什么你的程序可以运行呢?

for (int ii=0;ii<64;ii++)
{
    signal(ii,SIG_IGN);
    if(ii<3) continue;
    printf("close(%d) == %d\n",ii,close(ii));
}
//终端上显示
//close(0) == 0
//然后就退出了
写回答

1回答

长歌_吴从周

2022-06-29

你的情况可能是其它的原因,我一直都是把io和信号close,不曾有过问题。

学习的兄弟那么多,如果真有bug,早就爆出来了。

0
0

C/C++气象数据中心实战,手把手教你做工业级项目

通过技术的实际应用,掌握等同2年经验的技术能力

968 学习 · 401 问题

查看课程