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
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум GLib проблема с потоками GMainLoop (2014)
- Форум Ошибки (2008)
- Форум Не стабильно устанавливается ubuntu (2019)
- Форум Boost.Asio и несколько async_write/async_read за раз (2023)
- Форум Вывести содержание бинарного файла (2013)
- Форум g++ expects argument (2013)
- Форум «Ненормальное» сравнение переменной shn с единицей. (2010)
- Форум Objective-C, Linux Fedora, GNUstep - сейчас себе голову сломаю (2012)
- Форум REST через Boost.Asio (2023)
- Форум boost::asio::async_write вызывает Segmentation fault (2023)