設計兩個程式,要求程序A中自定義訊號SIGUSR1的響應介面,要求程序B每隔一段時間向程序A就傳送SIGUSR1訊號,測試程序A是否可以執行關聯的響應介面。

小懿同学發表於2024-05-27
設計兩個程式,要求程序A中自定義訊號SIGUSR1的響應介面,要求程序B每隔一段時間向程序A就傳送SIGUSR1訊號,測試程序A是否可以執行關聯的響應介面。

程式A:

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

// 訊號處理函式
void signal_handler(int signum)
{
    printf("Received SIGUSR1 signal!\n");
    
}

int main() {
    // 註冊訊號處理函式
    signal(SIGUSR1, signal_handler);

    // 無限迴圈,等待訊號
    while (1);

    return 0;
}

程式B:

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

int main() {

    while (1) {
        // 向程序A傳送SIGUSR1訊號
        kill(20753, SIGUSR1);
        sleep(1); // 等待1秒
    }

    return 0;
}

​ 啟動兩個終端進行,一個終端啟動程式A的可執行檔案,一個終端啟動程式B的可執行檔案(注意在後面加上 & 這個符號),讓程式B的可執行檔案在後臺執行。

相關文章