Отслеживать файл, пока он открыт для записи

Было бы намного проще подключить SSD самостоятельно и сначала правильно загрузить его, прежде чем добавлять в смесь другие диски и GRUB. Попробуйте recboot / fixmbr , если вы еще этого не сделали. Убедитесь, что раздел отмечен как загрузочный. Выполните chkdsk C: / f / r , чтобы проверить наличие ошибок.

После правильной загрузки добавьте другие диски и попробуйте обновить GRUB еще раз. Он должен добавить запись с простой командой chainloader , которая просто передает остальную часть процесса загрузки загрузчику Win7.

0
22.02.2019, 18:33
1 ответ

Если вы не видите его с помощью tail, его нет в файле.

Однако он может находиться в буфере записи программы Python. Обычное поведение при записи в файлы заключается в том, что библиотека C буферизует выходные данные до тех пор, пока не будет записан полный блок (, например. 4096 байт или около того )вместо немедленной отправки всех записей в ОС. Это экономит накладные расходы на системные вызовы. Это похоже на Python.(Я не уверен, использует ли он библиотеку C или выполняет аналогичную буферизацию сам, но конечный результат тот же.)

Для вывода на терминал по умолчанию используется буферизация строк :буфер выписывается при записи новой строки. Конечно, любые буферы также сбрасываются, если файл закрыт, но это действительно не очень эффективно.

Чтобы это исправить, либо вызывайте f.flush()после каждого f.write(), либо вообще отключайте буферизацию. Есть несколько способов сделать это в этом вопросе о SO:Отключить буферизацию вывода

4
28.01.2020, 02:22

Теги

Похожие вопросы