上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 59 下一页
摘要: 依赖于实现的信号的其他特征。 1、信号名字 某些系统提供数组 extern char *sys_siglist[]; 数组下标是信号编号,给出一个指向信号字符串名字的指针。 这些系统通常也提供函数psignal。 #include void psignal(int signo, const char * msg);字符串msg(通常是程序名)输出到标准出错文件,后接一个冒号和一个... 阅读全文
posted @ 2014-01-13 15:13 ITtecman 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 在表10-1(http://www.cnblogs.com/nufangrensheng/p/3514157.html)所示的信号中,POSIX.1认为有6个与作业控制有关: SIGCHLD 子进程已停止或终止。 SIGCONT 如果进程已停止,则使其继续运行。 SIGSTOP 停止信号(不能被捕捉或忽略)。 SIGTSTP 交互式停止信号。 SIGTT... 阅读全文
posted @ 2014-01-13 14:44 ITtecman 阅读(917) 评论(0) 推荐(0) 编辑
摘要: #include unsigned int sleep(unsigned int seconds);返回值:0或未休眠够的秒数此函数使调用进程被挂起,直到满足以下条件之一:(1)已经过了seconds所指定的墙上时钟时间。(2)调用进程捕捉到一个信号并从信号处理程序返回。如果alarm信号一样,由于其他系统活动,实际返回时间比所要求的会迟一些。在第(1)种情形中,返回值是0。当由于捕捉到某个... 阅读全文
posted @ 2014-01-13 14:14 ITtecman 阅读(1357) 评论(0) 推荐(0) 编辑
摘要: 在http://www.cnblogs.com/nufangrensheng/p/3512291.html中已经有了一个system函数的实现,但是该版本并不执行任何信号处理。POSIX.1要求system忽略SIGINT和SIGQUIT,阻塞SIGCHLD。 实例 程序清单10-19使用http://www.cnblogs.com/nufangrensheng/p/3512291.html中... 阅读全文
posted @ 2014-01-13 11:22 ITtecman 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: abort函数的功能是使异常程序终止。#include void abort(void);此函数不返回此函数将SIGABRT信号发送给调用进程(进程不应忽略此信号)。ISO C规定,调用abort将向主机环境递送一个未成功的终止通知,其方法是调用raise(SIGABRT)函数。实例程序清单10-18 abort的POSIX.1实现#include #include #include #include voidabort(void) /* POSIX-style abort() function */{ sigset_t mask; struct sigacti... 阅读全文
posted @ 2014-01-12 22:17 ITtecman 阅读(3152) 评论(1) 推荐(1) 编辑
摘要: 更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞。使用这种技术可以保护不希望由信号中断的代码临界区。如果希望对一个信号解除阻塞,然后pause等待以前被阻塞的信号发生,则又将如何呢?假定信号时SIGINT,实现这一点的一种不正确的方法是: sigset_t newmask, oldmask;sigemptyset(&newmask);sigaddset(&newmask,... 阅读全文
posted @ 2014-01-12 18:29 ITtecman 阅读(7540) 评论(0) 推荐(1) 编辑
摘要: 在信号处理程序中经常调用longjmp函数以返回到程序的主循环中,而不是从该处理程序返回。 但是,调用longjmp有一个问题。当捕捉到一个信号时,进入信号捕捉函数,此时当前信号被自动地加到进程的信号屏蔽字中。这阻止了后来产生的这种信号中断该信号处理程序。(仅当从信号捕捉函数返回时再将进程的信号屏蔽字复位为原先值:http://www.cnblogs.com/nufangrensheng/p/3... 阅读全文
posted @ 2014-01-12 16:48 ITtecman 阅读(13825) 评论(4) 推荐(2) 编辑
摘要: sigaction函数的功能是检查或修改与指定信号相关联的处理动作(或同时执行这两种操作)。#include int sigaction( int signo, const struct sigaction *restrict act, struct sigaction *restrict oact);返回值:若成功则返回0,若出错则返回-1其中,参数signo是要检测或修改其具体动作的信号编号。若act指针非空,则要修改其动作。如果oact指针非空,则系统经由oact指针返回该信号的上一个动作。此函数使用下列结构:struct sigaction { void (*sa_hand... 阅读全文
posted @ 2014-01-12 14:43 ITtecman 阅读(15781) 评论(0) 推荐(2) 编辑
摘要: sigpending函数返回信号集,其中的各个信号对于调用进程是阻塞的而不能递送,因而也一定是当前未决的。该信号集通过set参数返回。(这些信号是已经产生的信号,但因为信号屏蔽字中对其设置了屏蔽位,从而被阻塞,不能递送给进程的那些信号。注意sigpending返回的信号集与信号屏蔽字的区别。从集合角度来讲,此信号集是当前信号屏蔽字的子集。) #include int sigpending(... 阅读全文
posted @ 2014-01-11 20:19 ITtecman 阅读(2055) 评论(0) 推荐(0) 编辑
摘要: 一个进程的信号屏蔽字规定了当前阻塞而不能递送给该进程的信号集。调用函数sigprocmask可以检测或更改其信号屏蔽字,或者在一个步骤中同时执行这两个操作。 #include int sigprocmask( int how, const sigset_t *restrict set, sigset_t *restrict oset );返回值:若成功则返回0,若出错则返回-1首先,若os... 阅读全文
posted @ 2014-01-11 19:22 ITtecman 阅读(5105) 评论(0) 推荐(0) 编辑
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 59 下一页