я знаю что у меня файл 1гб, я хочу создать его пустым (забитым нулями), а потом, как по сети мне будут прилетать блоки, дописывать куда надо (fseek + fwrite).
Вообще, это и не кроссплатформенно не сделать
Но возможно тебе будет интереснее повозиться с mmap / File Mapping, учитывая твои задачи
Ну , расскажи тогда, как..
Разве тогда промежуточное содержимое определено?
‼️ не, важно чтобы нулями, иначе я недозакаченный не смогу определить.
Хранить метаинфу, что скачано
А если ты качаешь данные состоящие из нулей? 🤔
Не ковырялся с поведением плюсовых стримов, но в сишном fseek: POSIX allows seeking beyond the existing end of file. If an output is performed after this seek, any read from the gap will return zero bytes. Where supported by the filesystem, this creates a sparse file.
На винде вряд будет аллоцировано пространство на диске: драйвер NTFS просто вернёт зануленный буфер
Ну, как и везде, именно поэтому я предлагал не пытаться заморачиваться с этим за пределами каких-нибудь особенно древних драйверов особенно длревних ФС
Так я же про это и сказал.
Обсуждают сегодня