在Ruby中创建命名管道

在Ruby中创建命名管道,ruby,named-pipes,mkfifo,Ruby,Named Pipes,Mkfifo,我试图在Ruby中创建一个命名管道。除了使用system命令(system(“mkfifo{pipe\u name}”))之外,是否有一个原生Ruby函数允许我这样做?当前版本的Ruby(从2.3.0开始)现在有一个原生的: 旧版本Ruby的旧答案: 我不相信有什么是完全土生土长的,但有一个 按如下方式安装: gem install mkfifo require "mkfifo" File.mkfifo('pipe_name') 然后像这样使用: gem install mkfifo r

我试图在Ruby中创建一个命名管道。除了使用
system
命令(
system(“mkfifo{pipe\u name}”)
)之外,是否有一个原生Ruby函数允许我这样做?

当前版本的Ruby(从2.3.0开始)现在有一个原生的:


旧版本Ruby的旧答案:

我不相信有什么是完全土生土长的,但有一个

按如下方式安装:

gem install mkfifo
require "mkfifo"
File.mkfifo('pipe_name')
然后像这样使用:

gem install mkfifo
require "mkfifo"
File.mkfifo('pipe_name')

如果你仔细看,似乎也存在一个一体化的解决方案,这两个宝石来自同一个作者。“mkfifo”是11个月前创建的,而“ruby fifo”是3年前创建的,但我不确定哪一个更好。mkfifo将fifo绑定到File类中,这样就可以像使用常规文件一样使用fifo。正如我所看到的,ruby fifo依赖于ruby mkfifo。ruby 2.3.0中引入了原生版本。@Steve感谢您告诉我,我已经更新了答案。ruby函数比使用system命令有什么好处吗?