问题标签 [mkfifo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - bash 中带有 mkfifo 的 gunzip
我正在尝试对文件进行压缩,然后将结果保存在使用 mkfifo 创建的命名管道中,该管道最终将用于连接命令。我见过很多关于使用 mkfifo 压缩东西的例子,但在这种情况下几乎没有关于 gunzip 的例子。我的问题概述是:
获取两个 *.gz 文件的内容,而无需将它们实际解压缩到磁盘。为此,请捕获 gunzip -c *.gz 的流(这是我想使用命名管道作为保存流内容的文件的地方)。获取两个命名管道并对它们执行连接。Unix代码中的简化想法有点像......
任何建议将不胜感激
c - 如何通过C中的命名管道发送文件?
我有两个程序,服务器和客户端。服务器应该读取一个文件,然后通过命名管道将其内容发送到客户端。但是我的服务器只从文件中读取两个字符,然后退出。这段代码有什么问题?
服务器.c:
客户端.c:
c - 无法打开 FIFO 进行写入
“服务器”程序端:
该程序打印以下输出:
我对FIFO知之甚少,因为我的教授没有教它。这就是我通过阅读他的例子和讲义所能做到的。我试过没有 O_NONBLOCK 标志,但这只会导致程序挂起,所以它是必需的。我不明白为什么读取 FIFO 很好,但写入 FIFO 无法打开。
c - 等到 2 pid 写入 FIFO(命名管道)
我正在尝试使用 FIFO(命名管道)和共享内存与服务器客户端制作井字游戏。
第一步是将客户端进程的pid写入FIFO。在服务器进程中,我需要等到 FIFO 中传递了 2 个 pid(来自 2 个不同的客户端进程)。
现在我只是从管道中读取 2 次,但它不能正常工作。我需要在while循环中阅读吗?
客户端代码:
服务器代码:
我希望服务器等到 2 个客户端正在运行,我应该怎么做?
非常感谢,阿萨夫。
c# - 写入 FIFO 文件、Linux 和 Mono(C#)
我想做我在标题中写的。但我只是无法理解它。我也用谷歌搜索了一切。我想将字符串写入由 mkfifo(我认为)创建的特殊类型的 FIFO 文件。如果有任何其他建议如何做到这一点,欢迎您。
ruby - 在 Ruby 中创建命名管道
我正在尝试在 Ruby 中创建一个命名管道。除了使用system
命令 ( system("mkfifo #{pipe_name}")
) 之外,是否有原生 Ruby 函数允许我这样做?
python - fifo - reading in a loop
I want to use os.mkfifo for simple communication between programs. I have a problem with reading from the fifo in a loop.
Consider this toy example, where I have a reader and a writer working with the fifo. I want to be able to run the reader in a loop to read everything that enters the fifo.
And the writer:
If I run python reader.py
and later python writer.py foo
, "foo" will be printed but the fifo will be closed and the reader will exit (or spin inside the while
loop). I want reader to stay in the loop, so I can execute the writer many times.
Edit
I use this snippet to handle the issue:
but maybe there is some neater way to handle it, instead of repetitively opening the file...
Related
c - 使用 mkfifo 阻止读取直到写入
我正在使用管道 mkfifo。我有一个读者和一个作家。
我希望读者阻止,直到文件中有内容。
您可以设置一个标志 O_NONBLOCK 用于非阻塞模式。所以默认情况下它应该阻止读取。
写入文件
从文件中读取
python - 如何在 Python 中检测到 fifo 已被删除
在 Python 中,我可以通过以下方式轮询 fifo(使用 Linuxmkfifo
命令创建)上的传入数据:
但是read()
在没有数据时以及当 fifo 已被删除(通过remove()
调用的外部程序)时都返回空字符串。
有没有办法告诉我正在听的fifo不再存在?
python - 命名管道竞争条件?
我有两个进程一个 C 和一个 python。C 进程花费时间将数据传递到命名管道,然后 python 进程读取该管道。应该非常简单,并且当我每秒传递一次数据(当前是时间戳,例如“Mon Aug 19 18:30:59 2013”)时它工作正常。
当我取出睡眠时出现问题(1);C进程中的命令。当没有一秒钟的延迟时,通信很快就会被搞砸。python 进程将读取多条消息或报告它已读取数据,即使其缓冲区为空。此时C进程通常会发生炸弹。
在我发布任何示例代码之前,我想知道是否需要在双方实现某种同步。就像可能告诉 C 进程不要写入 fifo 如果它不为空?
C 进程以只读方式打开命名管道,python 进程以只读方式打开。
这两个过程都旨在作为循环运行。C 进程不断读取通过 USB 端口传入的数据,python 进程获取每个“消息”并在将其发送到 SQL Db 之前对其进行解析。
如果我要每秒查看多达 50 条消息,命名管道是否能够处理该级别的事务率?每个事务的大小相对较小(20 字节左右),但频率让我想知道我是否应该研究其他形式的进程间通信,例如共享内存?
任何建议表示赞赏。如有必要,我可以发布代码,但目前我只是想知道我是否应该以某种方式在两个进程之间同步。
谢谢!