"陷阱"控制-d和控制-c

Hai*_*Hai 0 c++

我有一个控制台程序,我想如果用户按ctrl-z程序退出,如果他按ctrl-c没有任何反应.在Bash中我会设置一个陷阱,我应该在C++中使用什么?

wil*_*ell 5

在Unix signal()<signal.h>用于注册接收信号时调用的函数.

例如:

#include <signal.h>

void leave(int sig);

// ...
{
    signal(SIGINT,leave);
    for(;;) getchar();
}

// Beware:  calling library fn from signal handler isn't std-conforming
//          and may not work.
void leave(int sig)
{
    exit(sig);
}
Run Code Online (Sandbox Code Playgroud)

  • `signal()`在不同的平台上表现不同.`sigaction()`稍微复杂一点,但是便携. (3认同)