Linux中pause函数怎么用
Linux中pause函数用法如下:
#include
int pause(void);
函数说明:pause()会暂停直到有信号传递给进程为止。
返回值:出错返回-1,并设置errno。
错误代码:EINTR 有信号中断了pause()的执行。
该函数主要应用于信号处理函数中,当捕捉到某个信号时希望进程暂停执行,等待信号的处理函数返回,再恢复执行。
举例:
#include
#include
#include
void ouch(int sig)
{
printf("OUCH! - I got signal %d\n", sig);
}
int main()
{
struct sigaction act;
act.sa_handler = ouch;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
sigaction(SIGINT, &act, 0);
while(1) {
printf("Hello World!\n");
sleep(1);
}
return 0;
}
执行结果:
Hello World!
Hello World!
Hello World!
^COUCH! - I got signal 2
Hello World!
Hello World!
Hello World!
可以看到,当按下Ctrl+C组合键时,触发了信号SIGINT,调用了信号处理函数ouch(),然后pause()使得进程暂停,直到信号处理函数返回,再恢复执行。
相关文章