程序間通訊 訊號(二)

2021-06-21 09:05:20 字數 620 閱讀 9681

一、模擬獲取gps資料,然後1s更新到顯示屏。

程序a:每秒開啟檔案gps.dat寫date時間到文

件,開啟寫前

清空下資料,

寫完即傳送訊號

sigusr1到程序b。

程序b:收到訊號sigusr1,唯讀方式開啟檔案gps.dat,把讀到的資料列印到顯示屏。

#include #include #include #include #include #include void interrupt_service_rountine(int signo)

; int fd = open("gps.dat",o_rdonly);

int ret = read(fd,buf,100);

printf("current date is %s",buf);

close(fd);

}int main()

}

程式執行結果:

可以看到程式每秒列印輸出,當然你也可以用kill()函式建立子程序來實現,

效果都一樣。

程序間通訊 訊號

關於訊號在程序間的通訊,這是乙個比較複雜的東西,本人不在這裡做過多的介紹.如果想系統的學習,請參考 unix環境高階程式設計這本書 我在這裡只展示幾個例子 用守護程序實現檔案的同步.由子程序1改乙個檔案,守護程序2,檢查到檔案已經改變,並通過訊號告訴給父程序,父程序實現輸出.程式有點複雜,但思路還是...

程序間通訊(訊號)

linux系統程序間通訊有很多種方式 較多使用的有訊號,管道以及system vipc。各種通訊方式各有優缺點。這部分主要就程序間通訊方式進行總結。1 訊號。訊號進行程序間通訊方式有一點需要明確 訊號只能通知,不能在程序間共享資料資源。也就是說訊號僅僅是告訴你一下某個事情發生了。而我們的程式則可以對...

程序間通訊 訊號

訊號 概念 訊號是在軟體層次上對中斷機制的一種模擬,它是比較複雜的通訊方式,用於通知程序有某事件發生,乙個程序收到乙個訊號與處理器收到乙個中斷請求效果上可以說是一致的。程序在接收到這個訊號以後,可以設定響應的處理動作 忽略或者呼叫函式進行處理。在linux下命令列 kill l 可以檢視linux下...