51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#微信号可以注销吗
信号之sigsuspend函数
更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞。使用这种技术可以保护不希望由信号中断的代码临界区。如果希望对一个信号解除阻塞,然后pause等待以前被阻塞的信号发生,则又将如何呢?假定信号时SIGINT,实现这一点的一种不正确的方法是:sigset_tnewmask,oldmask;sigemptyset...
代码星球
·
2021-02-21
信号
sigsuspend
函数
信号之sigsetjmp和siglongjmp函数
在信号处理程序中经常调用longjmp函数以返回到程序的主循环中,而不是从该处理程序返回。但是,调用longjmp有一个问题。当捕捉到一个信号时,进入信号捕捉函数,此时当前信号被自动地加到进程的信号屏蔽字中。这阻止了后来产生的这种信号中断该信号处理程序。(仅当从信号捕捉函数返回时再将进程的信号屏蔽字复位为原先值:htt...
代码星球
·
2021-02-21
信号
sigsetjmp
siglongjmp
函数
信号之sigaction函数
sigaction函数的功能是检查或修改与指定信号相关联的处理动作(或同时执行这两种操作)。#include<signal.h>intsigaction(intsigno,conststructsigaction*restrictact,structsigaction*restrictoact);返回值:若...
代码星球
·
2021-02-21
信号
sigaction
函数
信号之sigpending函数
sigpending函数返回信号集,其中的各个信号对于调用进程是阻塞的而不能递送,因而也一定是当前未决的。该信号集通过set参数返回。(这些信号是已经产生的信号,但因为信号屏蔽字中对其设置了屏蔽位,从而被阻塞,不能递送给进程的那些信号。注意sigpending返回的信号集与信号屏蔽字的区别。从集合角度来讲,此信号集是当...
代码星球
·
2021-02-21
信号
sigpending
函数
信号之sigprocmask函数
一个进程的信号屏蔽字规定了当前阻塞而不能递送给该进程的信号集。调用函数sigprocmask可以检测或更改其信号屏蔽字,或者在一个步骤中同时执行这两个操作。#include<signal.h>intsigprocmask(inthow,constsigset_t*restrictset,sigset_t*r...
代码星球
·
2021-02-21
信号
sigprocmask
函数
信号之信号集
我们需要有一个能表示多个信号——信号集(signalset)的数据类型。POSIX.1定义了数据类型sigset_t以包含一个信号集,并且定义了下列五个处理信号集的函数。#include<signal.h>intsigemptyset(sigset_t*set);intsigfillset(sigset_t...
代码星球
·
2021-02-21
信号
信号之不可靠的信号及中断的系统调用
一、不可靠的信号在早期的UNIX版本中,信号是不可靠的。不可靠在这里指的是,信号可能会丢失:一个信号发生了,但进程却可能一直不知道这一点。早期版本中的一个问题是在进程每次接到信号对其进行处理时,随即将该信号动作复位为默认值(经测试,发现我现在用的RedHatLinux2.6.18也是这样处理的。)。在描述这些早期系统的...
代码星球
·
2021-02-21
信号
不可
靠的
中断
系统
信号之alarm和pause函数
使用alarm函数可以设置一个计时器,在将来某个指定的时间,该计时器会超时。当计时器超时时,产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止调用该alarm函数的进程。#include<unistd.h>unsignedintalarm(unsignedintseconds);返回值:0...
代码星球
·
2021-02-21
信号
alarm
pause
函数
信号之kill和raise函数
kill函数将信号发送给进程或进程组。raise函数则允许进程向自身发送信号。#include<signal.h>intkill(pid_tpid,intsigno);intraise(intsigno);两个函数返回值:若成功则返回0,若出错则返回-1调用raise(signo);等价于调用kill(ge...
代码星球
·
2021-02-21
信号
kill
raise
函数
信号之可靠信号术语和语义
当引发信号的事件发生时,为进程产生一个信号(或向进程发送一个信号)。事件可以是硬件异常、软件条件、终端产生的信号或调用kill函数。在产生了信号时,内核通常在进程表中设置一个某种形式的标志。当对信号采取了这种动作时,我们说向进程递送了一个信号。在信号产生(generation)和递送(delivery)之间的时间间隔,...
代码星球
·
2021-02-21
信号
可靠
术语
语义
信号之可重入函数
进程捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断,它首先执行该信号处理程序中的指令。如果从信号处理程序返回(例如信号处理程序没有调用exit或longjmp),则继续执行在捕捉到信号时进程正在执行的正常指令序列。但在信号处理程序中,不能判断捕捉到信号时进程在何处执行。如果程序正在执行mal...
代码星球
·
2021-02-21
信号
之可
重入
函数
信号之signal函数
UNIX系统的信号机制最简单的接口是signal函数。signal函数的功能:为指定的信号安装一个新的信号处理函数。#include<signal.h>void(*signal(intsigno,void(*func)(int)))(int);复杂原型分开看:void(* signal(intsi...
代码星球
·
2021-02-21
信号
signal
函数
信号之信号概念
信号是软中断,它提供了一种处理异步事件的方法。首先,每个信号都有一个名字。这些名字都以三个字符SIG开头。在头文件<signal.h>中,这些信号都被定义为正整数(信号编号)。实际上,实现将各信号定义在另一个头文件中,但是该头文件又包括在<signal.h>中。通常,若应用程序和内核两者都需使用...
代码星球
·
2021-02-21
信号
概念
UNIX基础知识之信号
本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。 信号(signal)是通知进程已发生某种情况的一种技术。例如,若某一进程执行除法操作,其除数为0,则将名为SIGFPE(浮点异常)的信号发送给该进程。进程如果处理信号有三种...
代码星球
·
2021-02-21
UNIX
基础知识
信号
条件测试和捕获信号
一、退出状态在Linux系统中,无论是命令、脚本还是程序,执行完成退出后都存在退出状态,退出状态通常保存在预定义变量$?中。大多数情况下,预定义变量只会使用两个数字表示命令、脚本和程序的退出状态。数字0表示命令、脚本或程序成功执行,没有发生错误。数字1表示在执行过程中发生了某些错误,没有成功执行。由于退出状态由程序编写...
代码星球
·
2021-02-21
条件
测试
捕获
信号
首页
上一页
...
2
3
4
5
6
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他