在程序之间关闭管道而不阻塞

时间:2016-10-20 16:17:33

标签: c++ linux

我有两个程序用于测试在嵌入式Linux设备上使用管道之间传递消息。以下是我正在运行的示例:

Receiver.cpp:

int main(int argc, char **argv) {
  std::cout << "Starting Receiver" << std::endl;
  int receiver = open("/dev/rtp10", O_RDONLY);
  if (receiver < 0){
    perror("Open Receiver failed");
  }
  //...
  close(receiver);
  std::cout << "Ending Receiver" << std::endl;
}

Sender.cpp:

int main(int argc, char **argv){
  std::cout << "Starting Sender" << std::endl;
  int sender = open("/dev/rtp10", O_WRONLY);
  if (sender < 0){
    perror("Open Sender failed");
  }
  //...
  close(sender);
  std::cout << "Ending Sender" << std::endl;
}

当我运行这些程序时,它们会成功打开,请执行//...部分,然后关闭。然而,那时发生的事情是其中一个程序成功关闭,另一个程序关闭。我想要做的是成功关闭管道,以便两个程序都能正常关闭。我该怎么做呢?

0 个答案:

没有答案