小编kar*_*saj的帖子

Linux如何优先考虑自定义信号处理程序?

我们上周进行了一次演讲,其中涉及操作系统(在本例中为Linux,在本例中我们的学校服务器使用SUSE Linux 11)如何处理中断.需要注意的是,对于大多数信号,您可以捕获中断并定义自己的信号处理程序来运行而不是默认值.我们用一个例子来说明这一点,我发现起初我觉得有趣的行为.这是代码:

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

#define INPUTLEN 100

main(int ac, char *av[])

{
  void inthandler (int);
  void quithandler (int);
  char input[INPUTLEN];
  int nchars;

  signal(SIGINT, inthandler);
  signal(SIGQUIT, quithandler);

  do {
    printf("\nType a message\n");
    nchars = read(0, input, (INPUTLEN - 1));
    if ( nchars == -1)
      perror("read returned an error");
    else {
      input[nchars] = '\0';
      printf("You typed: %s", input);
    }
  }
  while(strncmp(input, "quit" , 4) != 0); 
}

void inthandler(int s)
{
  printf(" Received Signal %d ....waiting\n", s);
  int i …
Run Code Online (Sandbox Code Playgroud)

c linux signals

5
推荐指数
1
解决办法
1220
查看次数

标签 统计

c ×1

linux ×1

signals ×1