macOS平台C++ Named pipes/FIFO 运行阻塞问题求助
macOS平台C++ Named pipes/FIFO 运行阻塞问题求助
大家好,最近折腾C++命名管道的时候碰到个跨平台的坑,想请教下各位!
在Linux系统上,我按下面的步骤运行代码完全没问题:
先创建两个命名管道,再后台启动两次程序:
mkfifo /tmp/{a,b} ./a.out 0 & ./a.out 1 &
程序会持续输出预期的内容:
hello bye hello bye ...
可到了macOS上,程序直接就卡住不动了。我琢磨着会不会是ofstream::flush()的作用不够,但拿不准具体问题出在哪。
下面是我用到的代码片段(注:代码没贴全,但核心部分是这些):
#include <fstream> #include <iostream> #include <assert.h> using namespace std; int main(int argc, char** argv) { ifstream in; ofstream out;
有没有大佬遇到过类似的情况?或者能帮忙分析下macOS对命名管道的处理和Linux有啥差异不?
内容来源于stack exchange
相关产品推荐
相关产品推荐

