相关疑难解决方法(0)

为什么Linux在按Ctrl + C时总是输出"^ C"?

我一直在研究Linux中的信号.我已经完成了一个捕获SIGINT的测试程序.

#include <unistd.h>
#include <signal.h>
#include <iostream>
void signal_handler(int signal_no);
int main() {
  signal(SIGINT, signal_handler);
  for (int i = 0; i < 10; ++i) {
  std::cout << "I'm sleeping..." << std::endl;
  unsigned int one_ms = 1000;
  usleep(200* one_ms);
  }
  return 0;
}
void signal_handler(int signal_no) {
  if (signal_no == SIGINT)
    std::cout << "Oops, you pressed Ctrl+C!\n";
  return;
}
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

I'm sleeping...
I'm sleeping...
^COops, you pressed Ctrl+C!
I'm sleeping...
I'm sleeping...
^COops, you pressed Ctrl+C!
I'm sleeping...
^COops, you pressed …
Run Code Online (Sandbox Code Playgroud)

linux bash signals sigint

7
推荐指数
2
解决办法
2731
查看次数

标签 统计

bash ×1

linux ×1

sigint ×1

signals ×1