gpt4 book ai didi

c - 了解管道/FIFO 是否已满

转载 作者:行者123 更新时间:2023-12-01 12:28:23 25 4
gpt4 key购买 nike

我有一个作为 RDWR(用于通信进程-进程)和管道(进程-线程)打开的 fifo,我如何理解何时达到管道或 fifos 限制?当我尝试写入超过 64 KB 时,它只是在 write() 中等待。

最佳答案

您需要使用非阻塞模式:

pipe2(fds, O_NONBLOCK);

或者,如果您需要在创建管道后执行此操作:
int flags = fcntl(fd, F_GETFL, 0);
fcntl(fd, F_SETFL, flags | O_NONBLOCK);

现在,当您读取或写入并且操作无法立即完成时,它将返回。然后您可以使用 select()poll()找出何时可以再次读取或写入(或者您可以只是忙等待)。

关于c - 了解管道/FIFO 是否已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089619/

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