いくつかの(コンパイルされたものであり、私のものではない)プログラム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ファイルの2つの新しい行の後に、次の出力が表示されます。
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ファイルを再度開く必要があるかを知ることができますか?
UPD:Windows 7