我有一个程序A调用另一个B做某事。我希望B能够在到达某个位置时发送信号或其他东西,以便A知道。目前我正在使用一种看似愚蠢的方法:我有B打印“REACHED”,然后在A中我捕获B的所有输出并扫描字符串“REACHED”(参见下面的代码)。还有什么其他选择?谢谢,
//B, at the desired location
printf("REACHED");
//A
FILE *fin = popen("./B","r");
while(fgets(buff,sizeof(buff),fin)){
string res(buff);
if (res.find("REACH") != string::npos){ //naive way
//got it
}
}
答案 0 :(得分:1)
共享内存
信号
写入文件(例如管道或网络连接)
使用现有的进程间通信(IPC)库