LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Надо бы вернуться к теме ТС.

когда файл превысит 800Mb закрыть файл

Тебе нужно ровно 800МБайт или примерно, лишь бы разбить? (Кстати, 'Mb' означает мегабит)

Каким образом это лучше сделать?

Не вижу особых подводных камней. Юзаешь write(2). Если данные приходят неравномерно, то сделай накапливающий буфер на несколько десятков мегабайт. Вызов write приводит к копированию данных из юзерспейс в кернел, поэтому надо избегать сотен вызовов в секунду, накапливать данные и затем писать уже большими кусками.

Думал просто иметь переменную и при каждой записи добавлять туда количество записанных данных.

this

Если еще какие-то особенности, вроде необходимости работать с записанными данными параллельно из другого процесса (читать, изменять), или достаточно широкого потока входных данных (>50МБайт/сек) - озвучь, и надо думать

Исходная версия Deleted, :

Надо бы вернуться к теме ТС.

когда файл превысит 800Mb закрыть файл

Тебе нужно ровно 800МБайт или примерно, лишь бы разбить? (Кстати, 'Mb' означает мегабит)

Каким образом это лучше сделать?

Не вижу особых подводных камней. Юзаешь write(2). Если данные приходят неравномерно, то сделай накапливающий буфер на несколько десятков мегабайт. Вызов write приводит к копированию данных из юзерспейс в кернел, поэтому надо избегать сотен вызовов в секунду, накапливать данные и затем писать уже большими кусками.

Думал просто иметь переменную и при каждой записи добавлять туда количество записанных данных.

this

Если еще какие-то особенности, вроде необходимости работать с записанными данными параллельно из другого процесса (читать, изменять), или реально широкого потока входных данных (>50МБайт/сек) - озвучь,и надо думать