使用ctrl-c中的sigint

jos*_*nns 6 c copy-paste sigint

好吧,所以我用一个sighandler来解释一些信号,为此目的它是ctrl-c,所以当输入ctrl-c时会采取一些动作,一切都很好而花花公子,但我真正需要的是没有^ c出现在输入/输出中就会发生这种情况

例如,假设我有这个代码

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

void siginthandler(int param)
{
  printf("User pressed Ctrl+C\n");
  exit(1);
}

int main()
{
  signal(SIGINT, siginthandler);
  while(1);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出将是

^ CUser按Ctrl + C.

我怎么能得到这个简单的

用户按下Ctrl + C?

pax*_*blo 1

那很可能不是你的程序这样做的。它可能是终端驱动程序,在这种情况下,您应该stty使用ctlechoechoctl选项进行研究。

您可以用来stty -a获取终端设备的所有当前设置。对于这些项目的编程接口来说,termios这是一条出路。