13得票1回答
什么情况会导致一个已打开、非阻塞的命名管道(FIFO)无法进行读取?

抱歉,我只能使用英语进行回答。new_pipe = os.open(pipe_path, os.O_RDONLY | os.O_NONBLOCK) # pipe_path points to a FIFO data = os.read(new_pipe, 1024) 读取时偶尔会引发 errn...

20得票1回答
Fifo文件Windows示例

我想知道是否有Windows对应Linux的mkfifo。对于对应,我的意思是创建文件的方法,使用st_mode S_IFIFO。 谢谢回答。

7得票2回答
正确的FIFO客户端-服务器连接

我正在尝试编写简单的客户端和服务器C程序,它们在单独的终端中相互通信。 服务器必须创建一个公共FIFO并等待客户端。同时,客户端正在创建自己的FIFO,通过该FIFO,将会收到来自服务器的响应。客户端的任务是向服务器发送通过队列创建的名称,并获得ls命令的结果。 我搜索了答案,例如:fif...

7得票2回答
mkfifo() 错误 ---> "创建命名管道时发生错误:文件已存在"

mkfifo函数需要两个参数:路径和模式。但我不知道它使用的路径格式是什么。我正在编写一个小程序来创建命名管道,将路径作为mkfifo的参数。例如,使用“/home/username/Documents”,但它总是返回-1并显示“创建命名管道时出错:文件已存在”的消息。我已经多次检查了这个目录...

7得票2回答
类似于“mkfifo”创建的命名管道,但具有双向功能。

我想创建一个命名管道,就像“mkfifo”创建的那样,但有一个注意事项。我希望这个管道是双向的。也就是说,我希望进程A写入FIFO,进程B从中读取,反之亦然。由“mkfifo”创建的管道允许进程A读取其写入管道的数据。通常我会使用两个管道,但我正在尝试模拟实际设备,因此我希望open(),re...

7得票1回答
在Ruby中创建命名管道

我正在尝试在 Ruby 中创建一个命名管道。除了使用 system 命令 (system("mkfifo #{pipe_name}")),还有没有原生的 Ruby 函数可以让我做到这一点?

28得票2回答
如何在Python中正确地向FIFO写入数据?

在Python中打开FIFO(命名管道)进行写入时会发生一些非常奇怪的事情。考虑当我尝试在交互式解释器中打开一个FIFO进行写入时会发生什么:>>> fifo_write = open('fifo', 'w') 上述代码会阻塞,直到我打开另一个解释器并输入以下内容:>&...

15得票3回答
使用poll()函数时,在命名管道上使用O_RDWR。

我已经研究了各种不同的Linux命名管道客户端/服务器实现,但它们大多数使用默认的阻塞读/写。由于我已经使用poll()检查其他标志,所以我认为通过poll()检查传入的FIFO数据也是一个好主意... 经过所有的研究,我认为以O_RDWR模式打开管道是防止在没有写入者打开管道时出现无限数量...

13得票3回答
先进先出 - 循环读取

我想使用os.mkfifo来实现程序之间的简单通讯。但是在使用循环读取FIFO时遇到了问题。 考虑这个玩具例子,其中有一个读者和一个写者通过FIFO进行通讯。我希望能够在一个循环中运行读者以读取进入FIFO的所有内容。# reader.py import os import atexit ...

7得票6回答
在Java中设置阻塞文件读取

我想在Java中设置一个阻止文件读取的操作。也就是说,当使用FileInputStream并调用任何read()方法时,调用会被阻塞。 我无法想到一个简单的与操作系统无关的方式 - 在类Unix的操作系统中,我可以尝试使用mkfifo创建一个FIFO并从该文件中读取。一个可能的解决方法是只需...