哪位能帮忙讲解一下 CENTOS 中 signal 的工作原理

eisldkw 2020-07-18 04:55:36
哪位能帮忙讲解一下 CENTOS 中 signal 的工作原理,并讲解一下以下代码的作用。谢谢大家。

static void signal_handler(int signum)
{
switch ( signum )
{
case SIGINT:
case SIGTERM:
if ( !quitting ) quitting = 1;
break;
case SIGHUP:
break;
case SIGQUIT:
if ( !quitting ) quitting = 1;
break;
case SIGPIPE:
break;
}
}

static void setup_signal_handlers(void)
{
struct sigaction act;

act.sa_handler = signal_handler;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
sigaction(SIGINT, &act, NULL);
sigaction(SIGTERM, &act, NULL);
sigaction(SIGQUIT, &act, NULL);
sigaction(SIGHUP, &act, NULL);
sigaction(SIGPIPE, &act, NULL);
sigaction(SIGUSR1, &act, NULL);
sigaction(SIGUSR2, &act, NULL);
}
...全文
26577 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
eisldkw 2020-07-23
  • 打赏
  • 举报
回复
引用 1 楼 eisldkw 的回复:
[quote=引用 楼主 eisldkw 的回复:]哪位能帮忙讲解一下 CENTOS 中 signal 的工作原理,并讲解一下以下代码的作用。谢谢大家。

static void signal_handler(int signum)
{
switch ( signum )
{
case SIGINT:
case SIGTERM:
if ( !quitting ) quitting = 1;
break;
case SIGHUP:
break;
case SIGQUIT:
if ( !quitting ) quitting = 1;
break;
case SIGPIPE:
break;
}
}

static void setup_signal_handlers(void)
{
struct sigaction act;

act.sa_handler = signal_handler;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
sigaction(SIGINT, &act, NULL);
sigaction(SIGTERM, &act, NULL);
sigaction(SIGQUIT, &act, NULL);
sigaction(SIGHUP, &act, NULL);
sigaction(SIGPIPE, &act, NULL);
sigaction(SIGUSR1, &act, NULL);
sigaction(SIGUSR2, &act, NULL);
}



哪位大师请尽快答复一下呀[/quote]

一个懂的也没有吗
eisldkw 2020-07-23
  • 打赏
  • 举报
回复
求大家了,快帮忙呀
eisldkw 2020-07-23
  • 打赏
  • 举报
回复
引用 楼主 eisldkw 的回复:
哪位能帮忙讲解一下 CENTOS 中 signal 的工作原理,并讲解一下以下代码的作用。谢谢大家。

static void signal_handler(int signum)
{
switch ( signum )
{
case SIGINT:
case SIGTERM:
if ( !quitting ) quitting = 1;
break;
case SIGHUP:
break;
case SIGQUIT:
if ( !quitting ) quitting = 1;
break;
case SIGPIPE:
break;
}
}

static void setup_signal_handlers(void)
{
struct sigaction act;

act.sa_handler = signal_handler;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
sigaction(SIGINT, &act, NULL);
sigaction(SIGTERM, &act, NULL);
sigaction(SIGQUIT, &act, NULL);
sigaction(SIGHUP, &act, NULL);
sigaction(SIGPIPE, &act, NULL);
sigaction(SIGUSR1, &act, NULL);
sigaction(SIGUSR2, &act, NULL);
}



哪位大师请尽快答复一下呀

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧