nataraj: (Default)
[personal profile] nataraj
Любимая мной программа теряет конфиг, если на диске закончилось место.
Полез разбираться...
Проблема по сути в том, что при перезаписи конфига, сим не просекает фишку, что во время записи произошла проблема, стирает старый вариант, а новый, вариант, оказывается неполным. И все... конфига нет.

Читаю код. Из кода узнаю, что в qt у объекта файл есть метод writeBlock который пишет строку в файл, и возвращает кол-во реально записанных байт.

Форматирую небольшой файлик в ext3, монтирую, проверяю на кошечке... Таки да, супер, когда место кончается, writeBlock начинает возвращать 0 когда место заканчивается...

Вставляю оною проверку в сим. (Там они анализировали не статус каждой попытки записать, а статус всего процесса целиком) На выходе имеем хрен: writeBlock уверяет, что все записывается успешно, хотя на разделе нет ни килобайта свободного места. И статус всего рпоцесса записи f.status() -- IO_Ok)

Самое забавное, что с другим конфигом (там их несколько) все проходит нормально. Оно получает статус IO_WriteError и не херит предидущую версию конфига...

В чем разница -- я не понимаю...

Все очень загадочно...

Пойду в форум Лора пожалуюсь, может кто что умное скажет...

UPDATE: Правильный ответ тут: http://shaplov.livejournal.com/302225.html
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 20th, 2026 09:50 am
Powered by Dreamwidth Studios