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

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

33得票6回答
在Python中创建一个临时FIFO(命名管道)?

你如何在Python中创建一个临时的FIFO(有名管道)? 这应该可以工作:import tempfile temp_file_name = mktemp() os.mkfifo(temp_file_name) open(temp_file_name, os.O_WRONLY) # ... ...

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

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

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

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

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

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

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

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

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

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

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...

14得票2回答
为什么我在打开一个使用mkfifo创建的管道时程序会挂起?

我使用mkfifo创建了一个命名管道。 然后我使用以下程序来打开它。但是,程序在"fopen"行处挂起。这里有什么问题吗?int main(int argc, char** argv) { char* line = "hello, world!"; FILE* fp = fopen("/tmp...

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

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