2023年7月29日,周六上午
函数原型
在Linux中,pause()
函数用于使当前进程暂停执行,直到接收到一个信号。
#include <unistd.h>
int pause(void);
pause()
函数不接受任何参数。
通常,pause()
函数用于编写简单的信号处理程序,以等待一个特定的信号。当接收到该信号时,进程会从pause()
函数返回,然后执行信号处理程序中定义的代码。
使用示例
运行程序后,进程被阻塞,直到键入Ctrl+C才会输出“Caught signal!"
#include<signal.h>
#include<stdio.h>
//信号处理程序
static void sigHandler(int sig){
static int count=0;
count++;
printf("Caught signal!(%d)\n",count);
}
int main(){
//给特定信号安装信号处理程序
//键入Ctrl+C时会产生SIGINT信号
if(signal(SIGINT,sigHandler)==SIG_ERR)
printf("signal error\n");
//让进程睡眠,直到接收到一个信号
for(;;)
pause();
}