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…” メッセージを出力し、最後にプログラムの実行を終了します。

bannerAds