信号(四)

2016-02-25  本文已影响17人  千里山南

2016-02-25

abort函数

void abort(void)
此函数将SIGABRT信号发送给调用进程。进程不应该忽略此信号。
ANSIC要求捕获到此信号而且相应信号处理程序返回,abort仍不会返回到其调用者。如果捕捉到此信号,这信号处理程序不能返回的唯一方法是它调用exit _exit longjmp siglongjmp POSIX1也说明abort覆盖了进程对此信号的阻塞和忽略。
让进程捕捉SIGABRT的意思是:在进程终止之前由其自行所需的清除操作。如果进程并不在信号处理程序中终止自己,POSIX说明当信号处理程序返回时abort终止该进程。
ANSIC对此函数的规格说明将这一问题留由实现决定,而不管输出流是否刷新以及不管临时文件是否删除。POSIX要求则更进一步,它要求如果abort调用终止进程则它应该有对所有打开的标准io流调用fclose的效果。但是如果调用abort并不终止进程,则它对打开的流也不应有影响。

system函数

POSIX要求system忽略SIGQUIT和SIGINT阻塞SIGCHLD。
system的返回值
system的返回值是shell的终止状态,它不总是执行命令字符串进程的终止状态。当且仅当shell本身异常终止时,system的返回值才报告一个异常终止。

sleep函数

unsigned int sleep(unsigned int seconds)
此函数使调用进程被挂起直到:

作业控制信号

上一篇 下一篇

猜你喜欢

热点阅读