Re: [問題] 在不同process間使用callback function

看板C_and_CPP (C/C++)作者 (卡馬請出來面對!!)時間14年前 (2011/12/29 17:43), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/3 (看更多)
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

12/29 20:25, , 1F
感謝chengcti,我有想過polling這個方法,不過這樣就失去
12/29 20:25, 1F

12/29 20:26, , 2F
「註冊」的意義了,原意是希望A,B註冊完後就可以做自己的事
12/29 20:26, 2F

12/29 20:28, , 3F
另外IPC的機制除了signal是asynchronous以外,其他都不是
12/29 20:28, 3F

12/29 20:29, , 4F
以message而言,A,B還是要定時去做msgrcv的動作
12/29 20:29, 4F

12/30 00:20, , 5F
那只有 COM 了. COM本質論這本書用資料結構寫COM
12/30 00:20, 5F
文章代碼(AID): #1E_3Of-9 (C_and_CPP)
文章代碼(AID): #1E_3Of-9 (C_and_CPP)