LinuxDev 板


LINE

Dear all, 標題可能有點不清楚, 我再重新闡述我的問題, 我想要在linux環境下, 使用C/C++(or QT)來call外部的執行檔A, 而caller process就稱為"P"好了 而這個執行檔"A"本身自己會在去呼叫另一隻執行檔"B"起來, 然後"A"就結束了, "B"會持續運作, 但我想讓"P"阻塞, 等到執行檔"B"結束才停止阻塞, 但無論使用popen, QProcess::execute/start, 都似乎無法達成, 但如果使用python的command.getstatusoutput()去呼叫執行檔"A", 卻能達成這個目的, 另外一提, 執行檔"A", "B"都是非open source, 所以我無法修改更動, 所以想請問各位大大, 不知道對於這個問題, 有沒有什麼好的想法, 利用Linux環境下的C/C++. 謝謝~ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.51.84
1F:推 mimi0213:wait() 12/23 22:32
2F:→ shooter555:wait()是用來等待fork所產生的subprocess而已 不是嗎? 12/25 14:47
3F:→ buganini:自己寫程式把AB包起來 P跟AB的殼做IPC 12/25 14:55
4F:→ buganini:其中最難包的應該是B 如果他不只是用來執行的話.. 12/25 14:56
5F:→ buganini:或是說如果你能取得B的pid的話 就可以直接用kernel 12/25 14:58
6F:→ buganini:機制來做 12/25 14:58
7F:→ shooter555:可是我無法取得A, B的source code 所以應該辦法把兩隻 12/26 09:48
8F:→ shooter555:單獨的執行檔包起來吧 12/26 09:48
9F:→ shooter555: 沒 12/26 09:48
10F:→ shooter555:我也想過直接取得B的Pid, 可是好像唯一辦法只能透過ps 12/26 09:52
11F:→ shooter555:指令, 然後grep name去找到它, 不過如果同時存在很多的 12/26 09:53
12F:→ shooter555:B的話, 就沒辦法了... 12/26 09:54
13F:→ buganini:所謂包起來就是不需要source code啊 自己用一個 12/26 11:04
14F:→ buganini:launcher去代替真正的B 這樣這個程式就會知道B的pid了 12/26 11:07
15F:→ buganini:簡單說就是你要在A/B之間塞自己的一層 12/26 11:08
16F:→ shooter555:這個方法好像可行喔!!意思是說我寫一隻假的Launcher來 12/26 11:39
17F:→ shooter555:騙A, 然後取得所有的參數以後, 在用這隻launcher去叫起 12/26 11:40
18F:→ shooter555:原本的B, 同時取得pid, 只是不知要怎樣將這pid傳回"P", 12/26 11:41
19F:→ shooter555:我先試試看這方法好了, 感謝大大指點!! 12/26 11:44
20F:→ shooter555:結果...還是無法讓P程式與那隻launcher做資料溝通... 12/28 14:15
21F:→ buganini:兩個程式都自己寫的就可以找其他手段做IPC啦 12/28 17:46
22F:→ buganini:在P開好pipe 把fd藏在環境變數 launcher就知道怎麼傳了 12/28 17:48
23F:→ shooter555:感謝大大!!我有找到一個方法了, 開socket來傳訊息, 先 12/30 13:15
24F:→ shooter555:開一個socket manager來管理所有的連結P跟Launcher的 12/30 13:16
25F:→ shooter555:socket, 然後利用這個manager來媒合P跟Launcher(因為P 12/30 13:18
26F:→ shooter555:跟Launcher or B都是multiple), 這樣就能讓兩個溝通了 12/30 13:20
27F:→ shooter555:P1 <一> launcher1, p2 <一> launcher2 ...... 12/30 13:21







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP