C言語のpause関数の使い方
C言語ではpause()関数は、プログラムの実行を停止し、シグナルを受け取るまで待つ
pause()関数はヘッダファイルで宣言され、プロトタイプは以下の通りです。
#include <unistd.h>
int pause(void);
pause()関数は無限ループを実行し、シグナルを受けて初めて実行を再開します。SIGINTシグナルを送信してpause()の待機を解除するには、Ctrl+Cの組み合わせキーを使用できます。
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…” メッセージを出力し、最後にプログラムの実行を終了します。