我有两个程序用于测试在嵌入式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;
}
当我运行这些程序时,它们会成功打开,请执行//...
部分,然后关闭。然而,那时发生的事情是其中一个程序成功关闭,另一个程序关闭。我想要做的是成功关闭管道,以便两个程序都能正常关闭。我该怎么做呢?