Advertisement

使用信号处理在Linux中Ctrl+C后出现 SIGINT 信号

阅读量:

在实际编程过程中,我们编写的程序常常需要持续运行。当进行调试时,通常通过按下ctrl+c来强制结束程序执行。然而,在这种情况下,位于while循环之后的close函数调用,若未预先设置中断处理机制,则无法被正常触发和执行。

错误例子

复制代码
    #include <iostream>
    #include <unistd.h>
    
    using namespace std;
    
    int main()
    {
    while(1){
        //sleep(1);
    }
    printf("closing\n");
    }
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
    

执行编译与运行操作后,使用ctrl+c所得到的结果显示:(不会输出closing相关信息)

复制代码
    cwd@cwd:~/code/test$ g++ test.cpp -o test
    cwd@cwd:~/code/test$ ./test
    ^C
    
    
      
      
      
    

应对这一问

全部评论 (0)

还没有任何评论哟~