如何在 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。检查哪一个适合您的应用程序。
我如何创建一个 "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。检查哪一个适合您的应用程序。