gpt4 book ai didi

c++ - 我的 C++ 程序无法打开命名管道

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:51 24 4
gpt4 key购买 nike

我正在尝试运行在 Ubuntu 下的 Mac OS 上完美运行的 C++ 应用程序。问题是由于打开命名管道失败。

我使用mkfifo如下:

  pipe_name_ = std::string("/tmp/myfifo");
if (mkfifo(pipe_name_.c_str(), 0666) < 0) {
error_print("Cannot create a named pipe\n");
return -1;
}

if ((fd_ = open(pipe_name_.c_str(), O_RDONLY | O_CREAT, 0666)) < 0) {
error_print("Cannot open file description named %s %s\n",
pipe_name_.c_str(), strerror(errno));
return -1;
}

但是,这会将用于 open() 的以下消息打印到屏幕上:

无法打开名为/tmp/myfifo 的文件描述无效参数

我的权限状态如下:

$ls -la /tmp/myfifo
prw-r----- 1 hamidb nonconf 0 Jun 20 13:35 /tmp/myfifo
$umask
0027

我想知道为什么它在 Mac OS 上运行良好而不是在 Linux 上运行。

最佳答案

我认为您的 open 标志有误,因为您没有创建文件。

应该是

open(pipe_name_.c_str(), O_RDONLY)

关于c++ - 我的 C++ 程序无法打开命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com