/*********************************************************************************
|
* Copyright: (C) 2025 LingYun IoT System Studio
|
* All rights reserved.
|
*
|
* Filename: signal.c
|
* Description: This file signal() example program.
|
*
|
* Version: 1.0.0(10/28/2025)
|
* Author: Guo Wenxue <guowenxue@gmail.com>
|
* ChangeLog: 1, Release initial version on "10/28/2025 03:14:34 PM"
|
*
|
********************************************************************************/
|
|
#include <stdio.h>
|
#include <signal.h>
|
#include <unistd.h>
|
|
void sig_handler(int signum)
|
{
|
switch(signum)
|
{
|
case SIGINT:
|
printf("Received signal %d(Ctrl+C) , you can not kill me now!\n", signum);
|
break;
|
|
case SIGTERM:
|
printf("Received signal %d(SIGTERM) , you can not kill me too!\n", signum);
|
break;
|
|
default:
|
break;
|
}
|
}
|
|
int main(int argc, char **argv)
|
{
|
// 注册 SIGINT 的处理函数
|
if (signal(SIGINT, sig_handler) == SIG_ERR)
|
{
|
perror("signal error");
|
return 1;
|
}
|
|
// 注册 SIGTERM 的处理函数
|
signal(SIGTERM, sig_handler);
|
|
printf("Press Ctrl+C to trigger SIGINT\n");
|
while (1)
|
{
|
printf("Working...\n");
|
sleep(2);
|
}
|
|
return 0;
|
}
|