在C語言中,pause()
函數用于使程序暫停執行,直到接收到一個信號。
pause()
函數在 <unistd.h>
頭文件中聲明,其原型如下:
#include <unistd.h>
int pause(void);
使用pause()
函數時,程序會進入一個無限循環,直到接收到一個信號才會繼續執行。可以使用 Ctrl+C
組合鍵來發送 SIGINT
信號給程序來中斷pause()
的等待。
下面是一個簡單的使用pause()
函數的示例:
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
void handle_signal(int sig) {
printf("Received a signal: %d\n", sig);
}
int main() {
signal(SIGINT, handle_signal); // 注冊信號處理函數
printf("Pause program execution...\n");
pause(); // 程序暫停等待信號
printf("Resume program execution...\n");
return 0;
}
在上面的示例中,signal()
函數用于注冊信號處理函數handle_signal()
,當接收到 SIGINT
信號時,會調用handle_signal()
函數進行處理。然后程序執行pause()
函數,暫停等待信號的到來。當我們在終端中按下 Ctrl+C
組合鍵時,程序會接收到 SIGINT
信號,handle_signal()
函數會被調用,打印出一個消息。接著程序繼續執行,打印出"Resume program execution…"消息,最后結束程序的執行。