
信号
信号相关
平平无奇的小垃圾
这个作者很懒,什么都没留下…
展开
-
SIGPIPE信号
在网络编程中,SIGPIPE这个信号是很常见的。当往一个写端关闭的管道或socket连接中连续写入数据时会引发SIGPIPE信号,引发SIGPIPE信号的写操作将设置errno为EPIPE。在TCP通信中,当通信的双方中的一方close一个连接时,若另一方接着发数据,根据TCP协议的规定,会收到一个RST响应报文,若再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不能再写入数据。因为SIGPIPE信号的默认行为是结束进程,而我们绝对不希望因为写操作的错误而导致转载 2020-08-19 16:51:11 · 6150 阅读 · 1 评论 -
信号基础
1.信号注册和注销1.1 注册在进程task_struct结构体中有一个未决信号的成员变量 struct sigpending pending。每个信号在进程中注册都会把信号值加入到进程的未决信号集。非实时信号发送给进程时,如果该信息已经在进程中注册过,不会再次注册,故信号会丢失;实时信号发送给进程时,不管该信号是否在进程中注册过,都会再次注册。故信号不会丢失;1.2 注销非实时信号:不可重复注册,最多只有一个sigqueue结构;当该结构被释放后,把该信号从进程未决信号集中删除,则信号注销完毕转载 2020-07-21 09:03:24 · 134 阅读 · 0 评论 -
多线程信号
http://blog.chinaunix.net/uid-12274566-id-3050955.html转载 2020-07-16 09:00:19 · 220 阅读 · 0 评论 -
linux 进程信号处理程序继承
1.当执行一个程序时,所有信号的状态都是系统默认或忽略。当调用exec函数后会将原先设置为要捕捉的信号都更改为默认动作,其他信号的状态则不变(一个进程原先要捕捉的信号,当其exec一个新的程序后,就不能在捕捉了,因为信号捕捉函数的地址很可能在所执行的新程序中已无意义)2.当一个进程调用fork时,其子进程继承父进程的信号处理方式,因为子进程在开始时复制了父进程的内存映像,所以信号捕捉函数的地址在子进程中是有意义的。...原创 2020-07-10 18:03:34 · 447 阅读 · 0 评论