加入收藏 | 设为首页 | 会员中心 | 我要投稿 51站长网 (https://www.51zhanzhang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
站内搜索:
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Signal Handling--ref

发布时间:2021-01-25 01:18:04 所属栏目:Linux 来源:网络整理
导读:signal is a software interrupt delivered to a process. The operating system uses signals to report exceptional situations to an executing program. Some signals report errors such as references to invalid memory addresses; others report asy

Eitheractionorold-actioncan be a null pointer. Ifold-actionis a null pointer,this simply suppresses the return of information about the old action. Ifactionis a null pointer,the action associated with the signalsignumis unchanged; this allows you to inquire about how a signal is being handled without changing that handling.

The return value fromsigactionis zero if it succeeds,and-1on failure. The followingerrnoerror conditions are defined for this function:

EINVAL
Thesignumargument is not valid,or you are trying to trap or ignoreSIGKILLorSIGSTOP.

signalandsigaction

signalandsigactionfunctions within a single program,but you have to be careful because they can interact in slightly strange ways.

sigactionfunction specifies more information than thesignalfunction,so the return value fromsignalcannot express the full range ofsigactionpossibilities. Therefore,if you usesignalto save and later reestablish an action,it may not be able to reestablish properly a handler that was established withsigaction.

sigactionto save and restore a handler if your program usessigactionat all. Sincesigactionis more general,it can properly save and reestablish any action,regardless of whether it was established originally withsignalorsigaction.

signaland then examine it withsigaction,the handler address that you get may not be the same as what you specified withsignal. It may not even be suitable for use as an action argument withsignal. But you can rely on using it as an argument tosigaction. This problem never happens on the GNU system.

signalfunction is a feature of ANSI C,whilesigactionis part of the POSIX.1 standard. If you are concerned about portability to non-POSIX systems,then you should use thesignalfunction instead.

Function Example

signal. Here is an equivalent example usingsigaction:

#include 

void
termination_handler (int signum)
{
struct temp_file *p;

for (p = temp_file_list; p; p = p->next)
unlink (p->name);
}

int
main (void)
{
...
struct sigaction new_action,old_action;

(编辑:ASP站长)

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关内容
未处理完善
    无相关信息
未处理完善