Re: Правильная запись потока байт в файл на С.
От: cruelbob  
Дата: 21.01.13 12:29
Оценка:
Здравствуйте, homecat, Вы писали:

H>Принимаю пакеты по сети и сразу пишу в файл


H>
H>rec1 = recv(socket1,buff1,sizeof(buff1),0);
H>write(foutput, buff1, rec1);
H>

H>пакеты по 1400 байт буфер 1500
H>уже на 10мбит запись на диск начинает тормозить прием данных
H>можно буфер поставить больше тогда на малой скорости все так же а при возрастании задержек записи в буфер набирается по 2-3 пакета но все равно как то это не аккуратно. Я рассчитывал что система сама будет кэшировать запись и сбрасывать потом большими блоками но как будто этого не происходит. Мне самому нужно набирать побольше в какой то буфер или что? Как вообще делают буферизацию записи скажем блоками по 1Мбайт. Приведите плиз пример реализации на Си без ++. Что то у меня не получается рабочий код.

Сделать очередь?
Twitter — http://twitter.com/Cruelbob
Блог — http://cruelbob.blogspot.ru/
Мыло — vlad.kolotvin@gmail.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.