Linux信号

本文详细探讨了Linux信号的相关知识,包括kill命令的使用、alarm信号的触发、信号的种类和处理行为,以及信号在进程间通信中的角色。重点讲解了signal函数、SIGUSR1/SIGUSR2的用法,并讨论了信号处理中可能遇到的时序竞争和异步I/O问题,还提到了SIGCHLD信号的处理策略。
摘要由CSDN通过智能技术生成

1.kill:

	kill -l									查看所有信号
	man 7 signal					查看man手册信号章节

前32个信号是Unix系统经典信号,与软件,操作系统相关, 后32个是实时信号, 驱动编程时使用

	#include <sys/types.h>
	#include <signal.h>
	int raise(int sig);				向自己发送信号
	void abort(void);				向自己发送SIGABRT信号
	int kill(pid_t pid, int sig);
		pid > 0
			sig发送给ID为pid的进程
		pid == 0 
			sig发送给与发送进程同组的所有进程
		pid < 0
			sig发送给组ID为|-pid|的进程, 并且发送进程具有向其发送信号的权限
		pid == -1
			sig发送给发送进程有权限向他们发送信号的系统上的所有进程
		sig为0时, 用于检测, 特定为pid进程是否存在, 若不存在, 返回-1
	若成功,至少一个信号发送成功,返回0, 否则返回-1, 并设置errno

2.alarm:

	#include <unistd.h>
	
	unsigned int alarm(unsigned int seconds);
	alarm函数用来计时, 计时seconds秒, 返回值是未计时的秒数,比如计时60秒, 已经计时了10秒,
	由于某种原因停止计时, 那么就返回50,当计时完毕, alarm会向调用它的进程发送SIGALRM信号

信号产生种类

	ctl + c		SIGINT						从键盘的输入中断
	ctl + z		SIGTSTP					终端暂停信号
	CTL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值