From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,SPF_PASS, TVD_SPACE_RATIO autolearn=no version=3.2.5 Message-ID: <4AD74CF6.3010900@rambler.ru> Date: Thu, 15 Oct 2009 20:25:26 +0400 From: "Kharitonov A. Dmitry" User-Agent: Thunderbird 2.0.0.21 (X11/20090323) MIME-Version: 1.0 To: ALT Linux Team development discussions Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: [devel] =?utf-8?b?0KTQsNC50LvRiw==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Oct 2009 16:21:52 -0000 Archived-At: List-Archive: List-Post: Max Ivanov wrote: >> Из-за кеширования записи ошибка часто обнаруживается только при закрытии >> файла, когда сделать уже мало чего можно (выводимые данные уже уничтожены -- >> обычно файл закрывают в самом конце программы), и это классическая проблема, >> которую разрешить не все умеют, по этому и не проверяют. >> > > А как её правильно разрешать? Научите. > Универсальный способ -- выводить небольшими порциями с частым закрытием файла. Но этот способ имеет очень низкую производительность. Из С есть много способов, среди которых изменение параметров кеширования: можно сообщить ядру стратегию кеширования (как часто будет происходить запись и вероятность сброса кеша), порядок обработки очереди на запись, вид очереди на запись, приоретет записи; принудительный сброс кеша; изменение приоритета приложения и банальная проверка свободного места перед открытием файла. Считается, что решить проблему так же помогает использование отображения файла в память, вместо обычного открытия, но я в этом как-то сомневаюсь. А вам это нужно чисто теоретически? или есть какая-то проблема?