`

unix环境高级编程_信号函数定义

 
阅读更多

<!-- gte="" mso="" 9=""><![endif]--><!-- gte="" mso="" 9=""><![endif]--><!-- gte="" mso="" 10=""><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style><![endif]--><!--![endif]----><!--!----><!--![endif]----><!--!----><!--![endif]----><!--!---->![endif]-->!-->![endif]-->!-->![endif]-->!-->

四、kill, raise, alarmsleep

4.1kill函数

int kill(pid_t pid, int signo)

POSIX.1定义,将信号发送给进程或进程组,成功返回0,失败返回-1.

#pid > 0 将信号发送给进城IDpid的进程

#pid == 0 将信号发送给同进程组的其他所有进程

#pid < 0 将信号发送给其进程组ID等于pid绝对值的进程组的所有进程

#pid == -1 未定义

4.2raise函数

int raise( int signo )

ANSI C定义,将信号发送给进程自,成功返回0,失败返回-1.

4.3alarm函数

Unsigned int alarm(unsigned seconds)

使用alarm函数设置一个时间值,在将来的某个时刻时间值被超过后,产生SIGALARM信号。如果不忽略或不捕捉此信函,则其默认动作是终止该进程。

每个进程只能设置一个alarm。如果在调用alarm时,以前已为该进程设置过闹钟时间,而且它还没有超时,则该闹钟时间的余留时间值作为本次alarm函数调用的值返回。以前登记过得闹钟时间则被新值所替换。

4.4pause函数

Int pause(void);

Pause函数使调用进程挂起直至捕捉到一个信号。只有在执行了一个信号处理程序并从其返回时,pause才返回,在这种情况下,pause返回-1errno设置为EINTR.

4.5sigaction函数

intsigaction(int signum, conststruct sigaction *act,

struct sigaction *oldact);

The sigaction()system call is used to change the action taken by a process on

receipt of aspecific signal.

signum specifies thesignal and can be any valid signal except SIGKILL andSIGSTOP.

If act isnon-null, the new action for signal signum is installed from act.

If oldact isnon-null, the previous action is saved in oldact.

4.6非局部转移函数

Sigsetjmpsiglongjmp,用在信号处理中的非局部转移。

非信号处理中使用setjmplongjmp来进行非局部转移。

4.7abort函数

Void abortvoid

此函数将SIGABRT信号发送给调用进程,进程不忽略此信号。

五、信号集

5.1 sigemptyset函数

int sigemptyset(sigset_t *set)

sigemptyset()initializes the signal set given by set to empty, with all signalsexcluded from the set.

5.2sigfillset函数

Int sigfillset(sigset_t* set)

sigfillset()initializes set to full, including all signals.

5.3sigaddset函数和sigdelset函数

int sigaddset(sigset_t *set, int signum)

int sigdelset(sigset_t *set, int signum)

sigaddset() andsigdelset() add and delete respectively signal signum from set.

5.4sigismember函数

int sigismember(const sigset_t *set, int signum);

sigismember()tests whether signum is a member of set.

5.5sigprocmask函数

int sigprocmask(int how, const sigset_t *set,sigset_t *oldset);

一个进程的信号屏蔽字规定了当前阻塞而不能传递给该进程的信号集。

调用此函数则可以检测或更改进程的信号屏蔽字。

5.6sigpending函数

int sigpending(sigset_t *set);

调用此函数返回调用进程被阻塞而不能递送和当前未决的信号集。该信号集通过set参数返回。

5.7sigsuspend函数

int sigsuspend(const sigset_t *mask);

sigsuspend() temporarilyreplaces the signal mask of the calling process with the mask given bymask and then suspends the process until delivery of a signal whose action isto invoke a signal handler or to terminate a process.

Ifthe signal terminates the process, then sigsuspend()does not return.

If the signal is caught, thensigsuspend() returns afterthe signal handler returns, andthe signal mask is restored to the state before the call to sigsuspend().

It is not possible to block SIGKILL orSIGSTOP; specifying thesesignals in mask, has no effect onthe process

分享到:
评论

相关推荐

    使用读进程和写进程熟悉unix高级环境编程中出现了消息队列操作函数

    压缩包内含4个文件:msg.h(定义消息结构)、msg.c(包含同名头文件)、snd.c(内部转调msgsnd函数发送消息)、rcv.c(内部转调msgrcv接收消息)。重点感受:消息是有类型——这再普通不过的事实。

    LINUX与UNIX SHELL编程指南(很全)

    9.2.11 awk输出函数printf 81 9.2.12 printf修饰符 81 9.2.13 awk数组 86 9.3 小结 88 第10章 sed 用法介绍 89 10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的...

    glib-2.12.12.tar.gz_Linux/Unix编程_Unix_Linux_

    Glib是一种底层库,创建 GDK 和 GTK 应用程序时该库可提供许多有用的定义和函数。

    LINUX与UNIX_Shell编程指南

    详细的介绍了Linux下的编程指南 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对...

    TCPIP协议详解卷2:实现

    他的著作有《UNIX网络编程》(两卷本),《UNIX环境高级编程》,《TCP/IP详解》(三卷本)等,同时他还是广受欢迎的教师和顾问。Stevens先生1951年生于赞比亚,早年,他就读于美国弗吉尼亚州的费什本军事学校,后...

    TCPIP详解--共三卷

    10.3 Unix选路守护程序 96 10.4 RIP:选路信息协议 96 10.4.1 报文格式 96 10.4.2 正常运行 97 10.4.3 度量 98 10.4.4 问题 98 10.4.5 举例 98 10.4.6 另一个例子 100 10.5 RIP版本2 102 10.6 OSPF:开放最短路径...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    TCP_IP详解卷1

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    LINUX与UNIX_Shell编程指南(下)

    19.1 在脚本中定义函数 203 19.2 在脚本中使用函数 203 19.3 向函数传递参数 203 19.4 从调用函数中返回 203 19.5 函数返回值测试 204 19.6 在shell中使用函数 204 19.7 创建函数文件 204 19.8 定位文件 205 19.9 ...

    TCP/IP详解part_2

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    LINUX与UNIX_SHELL编程指南2

    shell函数 202 &lt;br&gt;19.1 在脚本中定义函数 203 &lt;br&gt;19.2 在脚本中使用函数 203 &lt;br&gt;19.3 向函数传递参数 203 &lt;br&gt;19.4 从调用函数中返回 203 &lt;br&gt;19.5 函数返回值测试 204 &lt;br&gt;19.6 在shell中使用...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    TCPIP详解卷[1].part04

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    TCPIP详解卷[1].part09

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    TCPIP详解卷[1].part03

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    TCPIP详解卷[1].part05

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    TCPIP详解卷[1].part06

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    TCPIP详解卷[1].part08

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

    TCPIP详解卷[1].part11

    1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口...

Global site tag (gtag.js) - Google Analytics