我寫了一個服務器程序,可以使用fork()處理多個客戶端。我有一個信號處理程序,在需要時進行錯誤檢查,並且一切正常。如果客戶端輸入'quit',服務器應該停止接受連接,讓已打開的客戶端完成通信,並在所有客戶端關閉後關閉。要做到這一點,無論何時輸入'quit',我的int標誌都被設置爲0.由於每個子進程中的變量僅用於該進程,並且不影響其他子進程或父進程,所以我可以「T跟蹤,當標誌被設置爲0。在我的信號處理程序我檢查fork() - 關閉服務器
if(count == 0 && flag == 0)
//close server and exit program
計數的客戶端數量開啓之後他們都將關閉,顯然是零(這已經被錯誤校驗以確保它是正確的)。有誰知道我可以創建可以在一個客戶端設置標誌的方式,並且對每個客戶端都有相同的價值嗎?如果這是有道理的..順便說一句,我在C編碼。
很多方法可以做到這一點。這裏有一個有用的關鍵字是「進程間通信」http://en.wikipedia.org/wiki/Inter-process_communication – HostileFork