設計兩個程式,要求程序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的可執行檔案在後臺執行。