C 库函数 - pause()
C 标准库 -
pause 函数是 C 标准库中的一个函数,用于使进程挂起(暂停执行),直到捕获到一个信号。此函数定义在
语法
int pause(void);
参数
pause 函数不接受任何参数。
返回值
成功时 pause 函数不返回,因为进程被信号处理程序中断。
失败时返回 -1,并将 errno 设置为 EINTR,表示函数因信号中断。
实例
以下是一个使用 pause 函数的示例程序。该程序设置一个信号处理程序,在捕获到 SIGINT 信号(通常由 Ctrl+C 触发)时解除挂起。
实例
#include
#include
#include
// 信号处理程序
void handle_sigint(int sig) {
printf("Caught signal %d\n", sig);
}
int main() {
// 设置 SIGINT 的信号处理程序
signal(SIGINT, handle_sigint);
// 挂起进程,等待信号
printf("Waiting for SIGINT (press Ctrl+C)...\n");
pause();
printf("Exiting...\n");
return 0;
}
编译并运行程序后,输出将是:
Waiting for SIGINT (press Ctrl+C)...
当按下 Ctrl+C(发送 SIGINT 信号)时,输出将是:
解释
signal(SIGINT, handle_sigint);:设置 SIGINT 的信号处理程序为 handle_sigint。
pause();:挂起进程,等待信号到达。当捕获到 SIGINT 信号时,handle_sigint 函数被调用。
信号处理程序执行后,pause 函数返回 -1,程序继续执行后续的代码。
注意事项
pause 函数通常用于在信号驱动的程序中,使进程挂起等待特定信号。
在 pause 函数挂起期间,进程的执行被暂停,直到捕获到信号。
处理信号时要注意信号安全,信号处理程序应尽量简短,只执行安全的操作。
C 标准库 -