看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) codeblock 問題(Question): 不同process之間要如何傳遞資料(vector) 補充說明(Supplement): 目前要做到的功能是 process A 將資料丟給多個 process 處理之後回傳給 A 目前有兩個想法 但不知道可不可行 1. 用exec() 呼叫 .exe 來處理資料回傳 但這個方法有辦法傳送vector 資料過去嗎? 目前看到是傳 cmd arg 2. 用fork() 去開啟多個child process 然後用pipe() 去傳遞資料?? 傳遞資料這裡還看不太懂 還有 fork() 好像會執行到太多重複的code 請問大家有更好的方法來做到我的訴求嗎? 或是我上面有哪裡說錯了 可以幫我補正一下嗎? 謝謝大家 -- ◢◤ ███◣ /// /// ███ ███ ███ ███ █▆▆ █▆▆ ██████◤ ψjimbox -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.53.128 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1396445032.A.98C.html
EdisonX:IPC 資料型態盡可能不要用 class, 換 compiler 時易出包.. 04/02 22:00
kimmyariel:用socket 04/02 22:44
rephansu:http://www.cs.cmu.edu/~./IPC/ 04/02 23:45
rephansu:這個方案如何? Windows和Linux都可用, 也可以互通 04/02 23:46
popular10347:是指用share memory來共用資料? 04/03 09:14
QQ29:named pipe 04/03 09:54
dirkc:提到.exe又提到fork,請問你是用cygwin嗎?OS是?還是要跨? 04/03 14:46
yvb:樓上可以 google: codeblock wiki 和 devc wiki 了解一下. 04/03 14:57
dirkc:是說我嗎:) 我duck了,還是不確定原PO的OS,是說除了cygwin 04/03 15:05
dirkc:以外有win版本的fork嗎?順便請教一下。 04/03 15:05
dirkc:推一樓,不管什麼IPC,大概都不會出現sizeof(std::vector) 04/03 15:14
redbxh:OS : Win7 自己也找了一下 fork() 好像要用cygwin/ unix 04/03 15:59
dirkc:1要轉字串,且args限制長度,且有安全問題;既是win,2就不提... 04/03 17:49
dirkc:幫自己和你查了http://ppt.cc/iBtd似乎是環境與偏好選擇問題 04/03 17:52
dirkc:http://ppt.cc/ttLP簡單;SHM(FileMap)快;socket順便學網路 04/03 17:54
dirkc:又查到shm手法在多核心架構下可能會較慢,因為記憶體必須在 04/04 14:54
dirkc:不同核心的cache間搬移拷貝維持相依性。隨著核心數量增加問 04/04 14:57
dirkc:題可能變嚴重<-OS Concepts第九版所說。僅供參考。 04/04 14:58
redbxh:謝謝樓上大大 我應該採用socket 感覺以後也用的到 04/04 17:45
yvb:對不起, 我眼殘了, 請忽略我前面的推文. 04/07 12:51
easyman:boost ipc 試試 ? 04/13 19:45