如何将特殊值返回到父程序?

时间:2013-11-14 22:35:22

标签: c++

我有一个程序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    
  }
}

1 个答案:

答案 0 :(得分:1)

  • 共享内存

  • 信号

  • 写入文件(例如管道或网络连接)

  • 使用现有的进程间通信(IPC)库