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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP