看板 C_and_CPP 關於我們 聯絡資訊
1. IPC / mailslot, pipe, message. not easy 2. file share (a simple method) A, B always check a file every n secs. When C writes a flag to file. The A & B read it, and call his function. ※ 引述《sawang (Keinohrhasen)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C and Linux : 問題(Question): : 各位先進好,想請問以下情境是否能夠達成。 : 現有三個獨立的 process A & B & C : A 向 C 註冊一個 callback function 名為 foo() : B 向 C 註冊一個 callback function 名為 bar() : Callback function prototype: : void (*cbfn)(int a, struct my_struct *b); : C 在條件1發生後會執行 foo() : C 在條件2發生後會執行 bar() : 不知道上述的情境是否能達成? : 如果可行的話,煩請先進指點迷津。 : 補充說明(Supplement): : 我知道 A,B 與 C 有各自的 address space, : 正常來說 C 是沒辦法執行 A,B 的 function, : 曾經想過利用 signal 或 IPC 機制來達成這樣的效果, : 不過似乎這樣又不需要「註冊函數」這個動作, : 而且傳遞參數上面也有問題, : 在小弟有限知識下實在是想不出要怎麼解決, : 網路上 Google 到的資訊也是同一隻 process 內的 callback (利用函數指標), : 希望有先進可以幫忙解惑。先行感謝。:-) -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.224.174
sawang:感謝chengcti,我有想過polling這個方法,不過這樣就失去 12/29 20:25
sawang:「註冊」的意義了,原意是希望A,B註冊完後就可以做自己的事 12/29 20:26
sawang:另外IPC的機制除了signal是asynchronous以外,其他都不是 12/29 20:28
sawang:以message而言,A,B還是要定時去做msgrcv的動作 12/29 20:29
chengcti:那只有 COM 了. COM本質論這本書用資料結構寫COM 12/30 00:20