2012-03-01 4 views
2

Я хочу получить представление о том, как Ruby управляет файловой буферизацией. Я искал ответы на другие вопросы, но, думаю, я не задаю правильных вопросов.Как я могу увидеть текущее состояние файлового буфера?

В IRB сессии я открыл файл для чтения:

f = File.open('somefile.txt', 'r') 

С помощью этой команды:

puts f.gets 

печатает первую строку somefile.txt. Если я повторяю команду puts f.gets, я получаю вторую строку и так далее.

Мои вопросы:

  1. ли файл буфера быть изменен gets?
  2. Если ответ на вопрос 1 да, то есть ли способ увидеть все строки, которые все еще остаются в буфере?
  3. Если ответ на вопрос 2 - нет, то я предполагаю, что gets имеет некоторую запись последней строки файла, которую он читает. Есть ли способ узнать значение этого индекса строки?

ответ

1

f.lineno даст вам текущую строку номер f.pos даст вам текущее смещение в байтах

+0

Идеальный ответ, спасибо Йоанна! –

Смежные вопросы