如何在 Ruby 中实现 /dev/listener 设备?

How to implement a /dev/listener device in Ruby?

我如何创建一个 "listener",它会像 /dev/something 文件一样反应,并且所有输入重定向到它(如:cat /text.txt > /dev/something)将被 [=19 读取=] 程序?

在我眼里好像

dev = Device.new(/dev/something)
while dev.gets do
    ...
    ....
    .....
end

在我看来,最简单的方法是这样的:

ARGF.each_with_index do |line, index|
  puts "#{index}: #{line}"
end

然后在您的控制台中键入 type stdin_read1.rb | stdin_read1.rb,其中第一个文件可以是任何文本文件。

这是 Windows 语法,但我看到你对控制台部分没有问题,我想 cat 是 Linux 等价物。

您可以只使用 each,我使用 each_with_index 来演示文本不只是管道传输。

你想要的是socket or named pipe。检查哪一个适合您的应用程序。