-2

SIGKILL シグナルをキャッチし、最初の 3 回の呼び出しでエラー メッセージを表示するシグナル ハンドラ関数を作成する割り当てがあります。SIGKILL を処理する 4 回目には、シグナル ハンドラをデフォルトに設定し、SIGKILL をそのプロセスに送信する必要があります (これはキャッチされません)。

ループを使用して、最初の 3 回の繰り返しでエラー メッセージを表示すると思います。私は正しいですか?SIGKILL をそのプロセスに送信し、ハンドラーをデフォルトに設定するのは困難です (混乱します)。

アドバイスをいただけますか?

4

2 に答える 2

5

彼が言ったことは本当です SIGKILL や SIGSTOP をキャッチすることはできません

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

void funCatch(int signal)
{
    printf("sucessfully caught the kill signal\n");
}

int main(int argc,char **argv)
{
    if(signal(SIGKILL,funCatch)==SIG_ERR)
    {
        printf("cannot catch signal\n");
    }
    return 0;
}

これは、上記のステートメントを確認するためのサンプル コードです。

于 2013-08-15T03:41:03.673 に答える