Linux中pause函数怎么用

2023-04-12 03:16:00 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()使得进程暂停,直到信号处理函数返回,再恢复执行。

相关文章