Проблема с сохранением выходных данных скрипта Ruby в файл - PullRequest
3 голосов
/ 18 мая 2010

У меня есть скрипт на Ruby, который выводит кучу текста. Как пример:

puts "line 1"
puts "line 2"
puts "line 3"
# etc... (obviously, this isn't how my script works..)

Нет лота данных - возможно, всего около 8 КБ символьных данных.

Когда я запускаю скрипт в командной строке, он работает как положено:

$ ./my-script.rb

line 1
line 2
line 3

Но, когда я помещаю его в файл, вывод обрезается ровно до 4096 байт:

$ ./my-script.rb > output.txt

Что заставит его остановиться на 4kb?

Обновление: Я просто переписал скрипт, чтобы выводить его непосредственно в файл, а не печатать на экран и сохранить вывод, и проблема все еще возникает!

$output = File.new("file.txt")
$output << "line 1"  #etc..

1 Ответ

4 голосов
/ 18 мая 2010

Правильно ли завершается ваша программа? 4 КБ может быть размером внутреннего буфера ОС для ввода / вывода, и следующие данные, присутствующие в следующем буфере (до 8 КБ, что является общим размером ваших данных), теряются, когда ваша программа внезапно завершается или вообще не завершается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...