问题标签 [fifo]

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.

0 投票
1 回答
5983 浏览

python - 让 readline 在 FIFO 上阻塞

我创建了一个先进先出:

我运行这个 python 代码:

正如我所希望的那样,它在 readline 上停滞不前。我跑:

我的程序不再停止。它读取该行,然后继续永远循环。为什么没有新数据时它不会再次停顿?

我还尝试查看“not fetchlistfile.closed”,我不介意在每次写入后重新打开它,但 Python 认为 fifo 仍然是打开的。

0 投票
1 回答
437 浏览

php - 与用户没有人的命名管道阻塞

我有 2 个简短的脚本。第一个是 awk 脚本,处理一个大文件并打印到命名管道“myfifo.dat”。第二个是 Perl 脚本,它运行一个LOAD DATA LOCAL INFILE 'myfifo.dat'...命令。这两个脚本在本地运行时都可以工作,如下所示:

但是,当我从 PHP 网页调用这些脚本时,命名管道会阻塞:

如果我修改 awk 和 Perl 脚本,以便它们写入和读取普通文件,那么 PHP 一切正常。fifo 和普通文件的权限为 666(用于测试目的)。这些操作通过命名管道运行得更快,所以我更喜欢使用一个。任何想法如何解锁它?

附言。如果您想知道为什么我要让所有这些恶化,请参阅这个 SO question

0 投票
2 回答
1751 浏览

python - Python (Twisted) - 从 fifo 读取并将读取数据发送到多个协议

我正在尝试编写某种多协议机器人(jabber/irc),它会从 fifo 文件(主要是一个衬里)读取消息,然后将它们发送到 irc 频道和 jabber 联系人。到目前为止,我设法创建了两个工厂来连接到 jabber 和 irc,它们似乎正在工作。

但是,我在读取 fifo 文件时遇到了问题 - 我不知道如何在反应器循环之外循环读取它(打开文件、读取行、关闭文件、跳转到打开文件等)以获取我的数据需要发送,然后将该数据发送到反应器循环,以便在两种协议中发送。我一直在寻找有关如何以最佳方式做到这一点的信息,但我完全迷失在黑暗中。任何建议/帮助将不胜感激。

提前致谢!

0 投票
1 回答
123 浏览

c - *nix: "echo 'start working' > /etc/.example" : 这是如何实现的?

假设有人在终端中执行以下操作:

当它被执行时,示例程序将“开始工作”。

在 UNIX(类)系统上,如何实现类似的东西,这种行为叫什么?

0 投票
2 回答
1979 浏览

erlang - 如何从erlang读/写到命名管道?

我需要我的 erlang 应用程序通过命名管道进行读写。

将命名管道作为文件打开将失败,并显示eisdir.

我编写了以下模块,但它很脆弱,并且在很多方面都感觉不对。一段时间后它也无法阅读。有没有办法让它更...优雅?

您可能已经注意到,它在接受或返回的内容中模仿了端口格式。我希望它替换将读取管道另一端并从调试器启动的 C 代码。

0 投票
7 回答
3687 浏览

linux - linux FIFO中的数据似乎丢失了

我有一个 bash 脚本,它想要并行执行一些工作,我通过将每个作业放在一个在后台运行的子外壳中来做到这一点。虽然同时运行的作业数量应该在一定范围内,但我首先将一些行放入 FIFO 中,然后在分叉子 shell 之前,父脚本需要从该 FIFO 中读取一行。只有在它得到一行之后,它才能分叉子shell。到目前为止,一切正常。但是当我试图从子shell中的FIFO读取一行时,似乎只有一个子shell可以得到一行,即使FIFO中显然有更多的行。所以我想知道为什么即使 FIFO 中有更多行,其他子外壳也无法读取一行。
我的测试代码如下所示:


输出文件 /tmp/fy_date 的内容为:

在那里,我期待这样的一行:

但它永远不会出现,并且子#2 进程在那里被阻塞,直到我发出:
echo something > /tmp/fy_u_test2.fifo

0 投票
3 回答
7059 浏览

c - 双向先进先出

我想实现一个双向fifo。下面的代码正在运行,但它没有使用双向 fifo。我在整个互联网上搜索过,但没有找到任何好的例子......

我怎样才能做到这一点?

谢谢,

作家.c:

读者.c:

0 投票
15 回答
89630 浏览

go - 有队列实现吗?

任何人都可以为简单快速的 FIF/队列推荐 Go 容器,Go 有 3 个不同的容器heaplistvector. 哪个更适合实现队列?

0 投票
5 回答
3009 浏览

c - FIFO实现

考虑以下代码:

作家.c

读者.c

我的问题是:

由于事先不知道 foo 和 bar 有多少字节,我怎么知道要从 reader.c 读取多少字节?
因为,例如,如果我在 reader 中读取 10 个字节,而 foo 和 bar 加起来小于 10 个字节,我会将它们都放在同一个变量中并且我不想要。
理想情况下,我会对每个变量都有一个读取函数,但是我事先也不知道数据有多少字节。
我考虑在writer.c中添加另一个写指令,在foo和bar之间用分隔符写,然后从reader.c解码它就没有问题了。这是解决问题的方法吗?

谢谢。

0 投票
2 回答
15185 浏览

c - C Named pipe (fifo). Parent process gets stuck

I want to make a simple program, that fork, and the child writes into the named pipe and the parent reads and displays from the named pipe. The problem is that it enters the parent, does the first printf and then it gets weird, it doesn't do anything else, does not get to the second printf, it just ways for input in the console.