Remember,too,that blocking program error signals such asSIGFPE leads to undesirable results for signals generated by an actual program error (as opposed to signals sent withraise orkill ). This is because your program may be too broken to be able to continue executing to a point where the signal is unblocked again. See section.
SIGALRMsignals that sets a flag whenever a signal arrives,and your main program checks this flag from time to time and then resets it. You can prevent additionalSIGALRM signals from arriving in the meantime by wrapping the critical part of the code with calls tosigprocmask ,like this:
/* This variable is set by the SIGALRM signal handler. */
volatile sig_atomic_t flag = 0;
int
main (void)
{
sigset_t block_alarm;
...
/ Initialize the signal mask. /
sigemptyset (&block_alarm);
sigaddset (&block_alarm,SIGALRM); (编辑:ASP站长)
【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
|