如何将特殊值返回给父程序

How to return a special value to parent program?

本文关键字:返回 程序      更新时间:2023-10-16

我有一个程序A调用另一个B来做某事。 我希望 B 在到达某个位置时发送信号或其他东西,以便 A 知道。 目前我正在使用一种看似愚蠢的方法:我让 B 打印"REACH",然后在 A 中捕获 B 的所有输出并扫描字符串"REACH"(见下面的代码)。 还有什么其他选择?谢谢

//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    
  }
}
  • 共享内存

  • 信号

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

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