2012-12-11 20 views
0

TLDR:我使用了一個類型爲void *的變量來保存字符串指針,我該如何修改字符串的值?pthread與參數通信

背景 帶IPC的家庭作業已經出現。
我有兩個過程,廚師和服務員在那裏服務員給廚師一些輸入(派對坐席,餐桌訂單,準備結賬等),然後廚師將信息發回給相關的服務員(顯然不是所有的服務員同時服務所有桌子)。

我(誠然笨重)解決方案:
1.廚師打開「廚師」 FIFO讀取文件
2.服務員打開「廚師」來寫,寫服務員的名字,並打開一個FIFO與該名稱讀書。
3.廚師讀取服務員的姓名並打開FIFO寫入。
3.a. (與我遇到的問題無關)服務員通過「廚師」發送輸入,直到廚師關閉系統。
4.在服務員的輸入過程中,偶爾主廚將不得不發回信息。當廚師進入輸出時,會進行檢查以確定要寫入哪個輸出FIFO。

問題 我有兩個pthreads,需要發回一個字符串。我已經傳遞了一個字符串指針作爲我給出的一個參數(在本例中稱爲void * arg),然後當我需要發回一些信息時,我試圖只將字符串放入我傳遞的指針中但還沒有找到這樣做。所以我的問題是,我怎麼可以這樣做?

回答

0

我清盤使用下列內容:

string* temp = static_cast<string*>(arg); 

然後修改只是修改溫度。由於arg將字符串的位置保存在主線程中,所以temp將它取出來,然後我可以將字符串放在temp中。因此建立了線程間通信,並且我能夠繼續執行我的可怕設計。