有一些(编译的而不是我的)程序A,当我启动它时,它每次都从头开始启动 .log 文件。我使用这种方法编写了程序B来处理这个日志:
File.open("qconsole.log") do |log|
log.gets nil # I am interested only in new lines
loop do
next sleep 0.1 unless line = log.gets
line.chomp!
puts line
# some code
end
end
例如,在 .log 文件中的两个新行之后,我看到以下输出:
player1: i talk blabla
player2: no way!
但是当我退出并重新启动程序A时:
]\quit
----- Server Shutdown -----
==== ShutdownGame ====
AAS shutdown.
---------------------------
----- CL_Shutdown -----
RE_Shutdown( 1 )
Shutting down OpenGL subsystem
...wglMakeCurrent( NULL, NULL ): success
...deleting GL context: success
...releasing DC: success
...destroying window
...shutting down QGL
...unloading OpenGL DLL
-----------------------
此后,程序B似乎丢失了 .log 文件。它不再打印我的新行了。我想,它nil
从log.gets
.
那么我怎么知道我需要停止执行log.gets
并重新打开 .log 文件呢?
升级版:Windows 7