在C語言中,pause()
函數(shù)用于使程序暫停執(zhí)行,直到接收到一個(gè)信號(hào)。
pause()
函數(shù)在 <unistd.h>
頭文件中聲明,其原型如下:
#include <unistd.h>
int pause(void);
使用pause()
函數(shù)時(shí),程序會(huì)進(jìn)入一個(gè)無限循環(huán),直到接收到一個(gè)信號(hào)才會(huì)繼續(xù)執(zhí)行。可以使用 Ctrl+C
組合鍵來發(fā)送 SIGINT
信號(hào)給程序來中斷pause()
的等待。
下面是一個(gè)簡單的使用pause()
函數(shù)的示例:
#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); // 注冊信號(hào)處理函數(shù)
printf("Pause program execution...\n");
pause(); // 程序暫停等待信號(hào)
printf("Resume program execution...\n");
return 0;
}
在上面的示例中,signal()
函數(shù)用于注冊信號(hào)處理函數(shù)handle_signal()
,當(dāng)接收到 SIGINT
信號(hào)時(shí),會(huì)調(diào)用handle_signal()
函數(shù)進(jìn)行處理。然后程序執(zhí)行pause()
函數(shù),暫停等待信號(hào)的到來。當(dāng)我們在終端中按下 Ctrl+C
組合鍵時(shí),程序會(huì)接收到 SIGINT
信號(hào),handle_signal()
函數(shù)會(huì)被調(diào)用,打印出一個(gè)消息。接著程序繼續(xù)執(zhí)行,打印出"Resume program execution…"消息,最后結(jié)束程序的執(zhí)行。