sim-im теряет конфиг, если на диске кончилось место... Старый стирается, новый оказывается пустой (места то нет). Полез внутрь... Там примерно следующее: QFile f(cfgName + BACKUP_SUFFIX); // use backup file for this ... if (!f.open(IO_WriteOnly | IO_Truncate)){ log(L_ERROR, "Can't create %s", (const char*)f.name().local8Bit()); return; } for (unsigned i = 0; i < plugins.size(); i++){ QCString line = "["; // Тут дальше формируется строка f.writeBlock(line, line.length()); // Ну еще кое-что таким же способом пишется... } const int status = f.status(); const QString errorMessage = f.errorString(); f.close(); if (status != IO_Ok) { log(L_ERROR, "I/O error during writing to file %s : %s", (const char*)f.name().local8Bit(), (const char*)errorMessage return; } Не смотря на то, что директорию с конфигом я засимлинкил на заведомо переполненный раздел, оно почему-то продолжает прибывать в уверенности, что все записалось как следует. И на этом основании уничтожает старый конфиг. Заменил f.writeBlock(line, line.length()); на int size1= f.writeBlock(line, line.length()); if ( size1 != (int) line.length() ){ log(L_ERROR, "Error writing file: %s but continue writing...", (const char*)f.name().local8Bit()); // return; } else { log(L_ERROR, "%i of %i bytes successfuly written in file: %s",size1 , line.length(),(const char*)f.name().local8Bit } Итог: writeBlock свято уверен, что у него все получается... Попробовал воспроизвести ситуацию в отдельной программе. В отдельной программе: все работает. Как только место заканчивается writeBlock начинает возвращать 0, как ему и положено. Мало того, с другим конфигом, который пишется в симе (их там более одного) все проходит нормально, статус возвращается правильный, и когда место кончилось старый конфиг не стирается. Кто нибудь с таким сталкивался. Может посоветуете, что делать/ где чего подкрутить/ что читать/ где спросить? Полный текст функции можно посмотреть тут: http://svn.berlios.de/viewcvs/sim-im/trunk/sim/plugins.cpp?view=markup
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Ошибки (2008)
- Форум Вывести содержание бинарного файла (2013)
- Форум Выделение памяти в модуле. (2005)
- Форум Помогите реализовать блочный ввод- вывод. (2011)
- Форум «Ненормальное» сравнение переменной shn с единицей. (2010)
- Форум передача списка процессов сервера клиенту (2015)
- Форум Не стабильно устанавливается ubuntu (2019)
- Форум x11 кодировка (2020)
- Форум поток ядра созданный kthread_create() не может создать или открыть файл используя filp_open() (2020)
- Форум не видит com порт (2007)