gpt4 book ai didi

无法写入命名管道

转载 作者:行者123 更新时间:2023-11-30 19:03:50 25 4
gpt4 key购买 nike

在这段代码中,当我打开管道进行写入时,我的程序崩溃了。

char pipe[30];
int fd, tmp = 2;
sprintf(pipe, "root_%d", getpid());
ret_val = mkfifo(pipe, 0666);
fd = open(pipe, O_WRONLY); //HERE IS CRASHING - SUDDENLY FREEZES
write(fd, &tmp, sizeof(int));
close(fd)

一切看起来都不错,但我的错误在哪里;

最佳答案

这是预期的行为。来自man 7 fifo:

Normally, opening the FIFO blocks until the other end is opened also.

因此,除非有人打开同一个管道进行读取,否则您的 open 不会返回。您可能需要添加 O_NONBLOCK 标志(并且可能在写入时获得 SIGPIPE),或重新审视设计。

关于无法写入命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364690/

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