问题标签 [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.

0 投票
1 回答
25 浏览

linux - 为什么 mkfifo'ed 管道仅在 ~25 秒后更新?

我有一个程序写入 mkfifo,每 3 秒使用printf(). 我正在尝试cat /path/to/device在另一个终端窗口中阅读它。但不是每 3 秒更新一次,而是每 25 秒打印一次。为什么?如何让它更新更快?(乌班图威利)

0 投票
1 回答
407 浏览

c - C 中 mkfifo() 生成的分段错误

我已经尝试调试了几个小时,但我仍然卡住了......

我在这段代码中使用“mkfifo”调用得到了分段错误(它只是我整个代码的一部分,因为我认为其余部分在这里不相关):

这会产生这个输出(可执行文件是我的文件名):

gdb 回溯会产生以下结果:

虽然创建了“pipe.fifo”文件......在此先感谢您的帮助!

编辑:

错误在error.c中被简单地定义为error.h中的签名:

0 投票
0 回答
120 浏览

c - 守护进程组和主进程之间的连接 - mkfifo

我试图将守护进程(没有领导者的守护进程组)与标题中的主进程连接起来,问题是我必须将每个守护进程(支持 SIGUSR1 信号)的语句发送到主进程,但我什至没有知道如何做到这一点,在我的代码中我使用了 mkfifo,但它根本不起作用..
这是主要的流程来源:

这是我创建守护进程的一些源代码:

至少我不确定我是否以良好的方式创建守护进程.. 我应该把信号放在哪里,以后可以执行?

你有什么建议吗?

0 投票
1 回答
440 浏览

git - git 存储库可以不包含名为 fifo 的 unix 吗?

我想我从实验中知道了这个问题的答案,但我的谷歌搜索并没有找到任何确定的答案。所以我正在寻求澄清。考虑

status命令将不显示任何内容。我的结论是您不能将命名管道放入 git 存储库中。我得出正确的结论了吗?或者我在这里错过了什么?

0 投票
1 回答
1451 浏览

c - C 无法从 fifo 读取(命名管道)

我创建了一个先进先出,但我无法从中读取。有什么问题?这是代码和输出。如果我在没有 O_NONBLOCK 程序的情况下使用 O_RDONLY,请稍候。

输出:

0 投票
1 回答
647 浏览

c - 客户端服务器实现的命名管道-服务器如何区分来自同一客户端的两个请求

我尝试使用命名管道实现客户端服务器模型。现在,当客户端仅向服务器发送一条消息时,服务器能够识别发送的消息是什么并将其打印出来。现在,如果客户端向同一服务器发送多条消息,则服务器无法区分这些消息并将两个客户端消息一起打印出来,而不是分别打印出两个消息。这是我正在使用的代码:

现在,我知道在服务器端我试图一次读取 80 个字节,这使得它可以一起读取所有字符,但是每当我试图在服务器端一次读取 5 个字节时,它就会进入无限循环。我的概念一定有问题。当我修改服务器端一次读取 5 个字节时,我有一个疑问。它进入无限循环,为什么它在读取客户端发送的所有消息后不阻塞。

0 投票
1 回答
282 浏览

c - 如何在 C 中使用 select() 从客户端和 FIFO 读取()

read()来自连接到服务器的客户端,同时,我select()注意到来自 FIFO 的数据。现在,当数据写入 FIFO 时,select 会将所有数据写入客户端,但会一直返回,就好像它“准备好读取”一样。所以下一次读取设置为-1and errno == EAGAIN。它这样做直到达到 fdmax。虽然它工作正常。

但是,为什么我一直得到EAGAIN?有没有更好的方法来处理这个?还是这是正确的方法?

注意:我正在传递O_RDWR|O_NONBLOCK,因此它还可以保留read()客户端发送的数据,而不仅仅是 FIFO。

0 投票
3 回答
553 浏览

linux - mode_t 0760 是什么意思?

我今天开始学习命名管道。我读到要创建新的命名管道,我必须使用这个函数:mkfifo (const char* nom, **mode_t mode**);

例子:

我的问题是为什么在第二个参数中我们以“ 0 ”(0 760)开头我知道 7 将所有权限授予所有者 6 表示组可以读写而另一个没有任何权限

0 投票
1 回答
734 浏览

linux - 在linux(C linux)中听fifo而不忙于等待

我创建了一个 FIFO(使用 mkfifo()),我需要等到某个进程将数据多次写入其中。我写了以下代码:(忽略不好的样式,这是为了保持示例简洁)

为了避免忙于等待,我添加了以下行:

(fd 是 FIFO 的描述符)
但是我真的不喜欢它,它看起来很做作。有更好的方法吗?

0 投票
0 回答
143 浏览

linux - 如何在 bash 脚本中将管道 (FIFO) 与我的程序一起使用?

我尝试做的事情:

创建管道 (FIFO)。

将管道的输出重定向到标准输入 (&1)。

将管道的输入重定向到第 4 个描述符 (&4)。

运行我的程序(它应该复制它的父描述符,指向我的管道)。

向 &4 写入一些东西(FIFO 输入)。

让它由我的程序读取(来自 FIFO 输出)。

不幸的是,它根本不起作用。我究竟做错了什么?