0

プログラムを終了する前に C 命令を実行するために、プログラムの kill シグナルを検出したいと考えています。私のプログラムはLinuxで実行されています

それは可能ですか?はいの場合、どうすればできますか?

4

3 に答える 3

5

を使用してシグナルハンドラを登録できますsigaction()SIGKILLorを処理できないことに注意してくださいSIGSTOP

于 2013-06-06T10:13:28.617 に答える
1

いいえ、SIGKILL は処理できません。CTRL+C をキャッチしたい場合は、次のようにします。

#include <stdio.h>
#include <signal.h>

volatile sig_atomic_t stop;

void
inthand(int signum)
{
    stop = 1;
}

int
main(int argc, char **argv)
{
    signal(SIGINT, inthand);

    while (!stop)
        printf("a");

    printf("exiting safely\n");

    return 0;
}

トリックを行います

于 2013-06-06T10:18:23.827 に答える
-1

SIGKILL または SIGTERM がプロセスに送信された場合、シグナルをマスクまたは無視することはできません。処理およびマスクできるその他のシグナル。

于 2013-06-06T10:14:25.010 に答える