嵌入式Linux系统编程学习之十四signal信号处理机制

这篇博客介绍了如何在C语言中使用signal函数来注册和处理信号。signal函数允许程序员定义特定信号(如SIGINT或SIGTERM)的处理方式,可以设置为系统默认处理、忽略或自定义函数。信号处理函数接收一个整型参数,表示接收到的信号值。信号处理在进程运行期间始终有效,同一信号可以注册相同的处理函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  可以用函数 signal 注册一个信号处理函数,原型为:

	#include <signal.h>
	typedef void(*sighandler_t)(int);	//函数指针 void (*)(int a)
	sighandler_t signal(int signum, sighandler_t handler);

  signal 的第 1 个参数 signum 表示要捕捉处理的信号,第 2 个参数是个函数指针,表示对该信号进行捕捉处理的函数,该参数也可以是 SIG_DFL(表示交由系统默认处理,相当于白注册了)或 SIG_IGN(表示忽略掉该信号而不做任何处理)。signal 如果调用成功,返回该信号处理函数的地址,否则返回 SIG_ERR。
  sighandler_t 类型的形参(函数指针)指向一个信号处理函数,由 signal 函数注册,注册以后,在整个进程运行过程中均有效,并且对不同的信号可以注册同一个信号处理函数。该函数只有一个整型参数,表示信号值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值