- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 《UNIX环境高级编程》笔记--sigsuspend函数
更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞,使用这种技术可以保护不希望由信号中断的代码临界区。如果希望对一个信号解除阻塞,然后pause等待以前被阻塞的信号发生,将如何呢?假定信号是SIGINT,实现这一点的一种不正确的方法是:sigset_t newmask,oldmask;sigemptyset(&newmask);sigaddset(&newmask, S
2013-12-15 10:25:40 5255 2
原创 《UNIX环境高级编程》笔记--sigsetjmp和siglongjmp函数
setjmp和longjmp函数用于非局部跳转,在信号处理程序中经常调用longjmp函数以返回到程序的主循环中,而不是从该处理程序返回。但是调用longjmp有一个问题,当捕捉到一个信号时,进入进行处理函数,此时当前信号被自动加到进程的信号屏蔽字中。这阻止了后来产生的这种信号中断该信号处理程序。如果用longjmp跳出信号处理程序,那么对此进程的信号屏蔽字会发生什么呢?POSIX
2013-12-14 14:50:27 5119 4
原创 《UNIX环境高级编程》笔记--sigaction函数
sigaction函数的功能是检查或修改指定信号相关联的处理动作,此函数取代UNIX早期版本使用的signal函数。#includeint sigaction(int signo, const struct sigaction *restrict act, struct sigaction *restrict oact);//若成功则返回0,出错则返回-1.参数signo是要检测或修改
2013-12-10 21:41:40 1803
原创 《UNIX环境高级编程》笔记--信号集
1.信号集基本操作我们需要有一个能表示多个信号--信号集(signal set)的数据类型。POSIX.1定义了数据类型sigset_t以包含一个信号集,并且定义了一下五个处理信号处理信号集函数。#include int sigemptyset(sigset_t *set); //清除set中所有的信号int sigfillset(sigset_t *set); //使se
2013-12-08 19:05:38 1763
原创 《UNIX环境高级编程》笔记--kill函数,raise函数,alarm函数,pause函数
1.kill函数和raise函数kill函数将信号发送给进程或者进程组,raise函数则运行进程向自身发送信号。#include int kill(pid_t pid,int signo);int raise(int signo);//若成功,则返回0,出错则返回-1.调用raise(signo);等价于调用kill(getpid(),signo);kill的pid参数有4种不同
2013-12-07 19:25:41 3130
原创 《UNIX环境高级编程》笔记--信号及其处理函数signal
1.信号概念信号是软件中断,很多比较重要的应用程序都需要处理信号。信号提供了一种处理异步事件的方法。在有文件中,这些信号被定义为正整数。不存在信号为0的信号。很多条件可以产生信号:1.当用户按某些终端键时,引发终端产生的信号。在终端上按ctrl+c键,通常产生中断信号(SIGINT)。2.硬件异常产生信号:除数为0,无效的内存引用等等。这些条件由硬件检测到,并将其通知内核,然后
2013-12-03 15:13:09 1754 1
原创 《UNIX环境高级编程》笔记--孤儿进程组
POSIX.1将孤儿进程组定义为:该组中每个成员的父进程要么是该组的一个成员,要么不是该组所属会话的成员。一个进程组不是孤儿进程组的条件是:该组中有一个进程,其父进程在属于同一会话中的另一个组中。下面对孤儿进程组的产生进行检验:1.在一个具有作业控制的shell中,执行一个程序,该程序fork了一个子进程,其进程结构如下:2.父进程休眠5秒钟,这是一种让子进程在父进程终止前
2013-12-01 13:35:05 2617 7
原创 《UNIX环境高级编程》笔记--作业控制
作业控制允许在一个终端上启动多个作业(进程组),它控制哪一个作业可以访问该终端,以及哪些作业在后台运行,作业控制要求下面三种形式的支持:1.支持作业控制的shell。2.内核中的终端驱动程序必须支持作业控制。3.内核必须提供对某些作业控制信号的支持。我们可以键入一些特殊字符来影响前台作业:1.中断字符(ctrl+c)产生SIGINT。2.退出字符(ctrl+\)
2013-12-01 11:42:29 1983
哈弗曼编码实现文件压缩
2014-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人