You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:37:59