2011-09-25 49 views
0

我創造了Unix的一個守護進程,將有一個串行端口「的/ dev/tty01上」獨家訪問。我打算創建一個主從進程範例,其中有一個主進程(守護進程)和多個從進程。 我想有在「共享內存」裏的奴隸可以訪問結構,並且只有一個作家的記憶,所以我很可能不會需要一個信號量。數據將會相當緩慢地更新,例如每分鐘一次。 我正在研究什麼是最好的方法來做到這一點,如果我有共享內存中的結構,我如何保證該結構在內存中是連續的?這是我必須具備的要求。共享內存主/從程序訪問單個串口

主程序將有自己的內部數據結構,從串口進行更新,然後它將修改數據並將其發送到共享內存中的全局結構以供客戶端使用。

我沒有在Unix的IPC多少經驗,但什麼是做最簡單的方法?順便說客戶都將在本地系統

由其他用戶運行不同的程序,必須使用共享內存這是該項目的要求。另外,如果第二個結構具有不同的數據類型,是否可以將一個結構複製到另一個結構中?

回答

0
  1. 共享內存段是您的進程視圖中的連續內存塊。

  2. 創建和處理共享內存的調用是相當簡單的(了shmctl /的shmat/shmdt)

  3. 在內存中的結構佈局是由你。 Best是一個類似字段的固定標題,其餘爲聯合。

  4. 爲了您的客戶端處理,你可以提供一個小LIB(靜態或共享)與一組函數來獲取數據,從而隱藏共享內存和結構。