问题标签 [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 回答
39 浏览

shell - 在 UNIX 中拉取文件和 zip

我正在使用 nzsql 从 netezza 服务器生成文件。现在要求的下一部分是将文件压缩并移动到另一个盒子(第二个 unix 盒子)。我可以在第一个盒子里实现这一点(坐在第一个盒子里,我先做 gzip,然后使用 scp 移动文件)。但我的问题是,这可以直接从第二个盒子完成吗?意味着在第一个框中将有将生成 nzsql 的文件,在第二个框中,该文件将被拉取,并且在拉取时将被压缩(使用 mkfifo 或通过任何其他方式)。在第一个框中,我不希望创建或驻留 zip 文件。请让我知道如何实现这一目标。

0 投票
1 回答
308 浏览

process - do not have the authority to access the file created by mkfifo

While using the FIFO to transmit information between different processes, I found out that the file that the mkfifo create cannot be accessed by the processes. I do not know how to change my program. Please help :(

And the authority of the file named signal is like the following:

0 投票
1 回答
66 浏览

named-pipes - 使用命名管道时终端提示消失

我正在尝试在项目中使用命名管道。我有两个终端打开,终端 A 和终端 B。

在终端 A,我发出了这个命令:

mkfifo myFifo && tail -f myFifo | csh -s

不过,似乎标准输出正在被重定向到其他地方,因为我的提示消失了,并且某些命令没有反映在终端 A 中。

例如,如果在终端 BI 中通过发出开始 python 会话echo "python" > myFifo,那么echo "print 'Hello, World'" > myFifo,我在终端 A 中看不到 Hello, World。

但是,如果我在终端 B 内发出,我会在终端 A 中echo ls > myFifo看到正确的输出。ls

有谁知道为什么有时会出现输出而有时却没有?

我在 CentOS 6.6 上运行

谢谢,埃里普

0 投票
1 回答
14512 浏览

windows - FIFO 文件 Windows 示例

我想知道是否有适用于 Linux mkfifo 的 Windows 等效项。等效地,我的意思是使用st_mode S_IFIFO创建文件的方式。感谢您的回答。

0 投票
2 回答
512 浏览

c - setuid 程序的管道访问权限

我正在扩展一些在 GNU / Linux (Ubuntu 14.04) 下运行并由一个manager进程和几个worker进程组成的软件(我不是其中的作者)。管理器可以通过我可以在配置文件中指定的命令行来启动一个工作器。

启动一个worker后,manager使用管道与它通信。出于安全原因,我们决定让工作人员在与经理不同的用户下运行(让我们称他们为manager-userand worker-user)。这是通过编写一个小包装脚本来实现的,该脚本可以切换用户su并启动一个新的工作人员。在此之后,管理器可以通过管道与工作进程进行通信。这种方法已经工作了好几个月了。

作为 的替代方案su,我们考虑使用该setuid位来运行工人。所以我们编写了一个C包装器,可以由管理器调用来启动一个工作器。如果我们将包装器配置为由 拥有manager-user,则工作程序将正确启动(但当然,权限错误)。如果我们将包装器配置为归其所有worker-user并设置该setuid位,那么工作器将启动但随后退出,因为它们无法连接到管理器。

所以我的问题是:运行setuid可执行文件如何影响父进程和子进程创建的管道的权限?难道是通过 setuid-wrapper 启动的工作进程没有打开管理器管道的权限(或相反)?如果是这种情况,我们如何更改这些权限?

我几乎没有使用经验,setuid因此欢迎提供任何信息/解释。

0 投票
0 回答
422 浏览

linux - Linux非阻塞FIFO write()时序不一致

我们有一个实时 linux 用户应用程序,它通过mkfifo()FIFO 与运行在同一主机上的另一个应用程序通信。我们的应用程序包含 4 个 pthread,其中之一创建并打开 FIFO。FIFO 在非阻塞 (O_NONBLOCK) 模式下打开。

write()在 pthread 上到输出 FIFO 通常需要大约。8 微秒 - 这适用于最长约 2500 字节的消息。对我们来说,问题是偶尔,但经常,它需要 10 倍,而且很少需要几毫秒。发生这种情况时,消息长度不会比平时长。

大概有一些事情发生在“引擎盖下”,导致了这种情况。有什么办法可以避免吗?write()只要我们没有看到很长的时间,平均时间是否有所增加也没关系。

感谢您收到任何意见/建议。

0 投票
1 回答
480 浏览

linux - R将tcpdump输出设置为fifo然后变量或连接

如何将此命令的实时流输出保存到在 while 循环中逐行运行的变量/连接?就像是:

或者

在 readLines(con, n = -1) 中使用“-1”参数清除整个 fifofile 似乎会持续地终止连接!?

0 投票
1 回答
52 浏览

named-pipes - GTKMM 监控 I/O 示例 100% CPU 负载

我正在从这里尝试 Gtkmm 监控 I/O 示例。在将某些内容写入 fifo 后,CPU 负载将达到 100%。

示例链接中显示的代码是我用于测试(复制/粘贴)的代码,我只删除了 build.config.h 头进行编译。

我使用以下方法编译它:

将代码转换为 Gtkmm 2 后,行为是相同的,在将某些内容写入 fifo 后,CPU 负载仍会达到 100%。

我的问题是,这是一个错误还是一个已知问题,或者可能是一个非问题?

0 投票
1 回答
691 浏览

bash - 为什么从fifo文件中读取-n会在shell中丢失数据

首先我做一个fifo

然后我向它呼应一些东西

打开另一个终端,并添加 sth 到它

当然,这两个都被阻塞了,然后我从fifofile中读取

全部都被释放了,我只有一个,而另一个字符不见了……

我的问题是为什么会发生这种情况,如何在不丢失数据的情况下从 fifo 文件中一一获取内容?

谢谢

0 投票
1 回答
1847 浏览

c - mkfifo() 无法在 C 中创建文件

我正在尝试在 C 中创建一个命名管道,但没有任何成功。

这是我的代码:

每次输出时运行上面的代码:

请帮忙。