LINUX.ORG.RU

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

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

А если у меня файл состоит исключительно из 0x00?

Если у вас 0x00 значимые символы, тогда это не задача от ТСа, когда он хочет работать с буфером функциями str*(). И вообще вы о чём-то своём, обычный тут через зубы выдавленный техноснобизм. Спор с предыдущим оратором был вообще о том, что он думает, что в конце файла вам обязательно встретится '\0'. Ко мне то какие притензии? Мой код, в отличии от всех предложенных тут как раз работает с бинарными файлами точно также. Вы то вообще ничего не предложили.

А потом удивляются,

Тю, а потом удивляются, почему всё тормозит, когда вместо того, чтобы быстро завершится, всё судорожно начинает делать free на фрагментированной куче, вместо того чтобы поручить системе одним махом пометить страницы как грязные, которые она всё равно будет делать ровно столько же и так же. Если вы про качество функции, то эту функцию надо документировать, что она выделяет буфер malloc-ом, а не юзает, скажем для малых буферов не стек, а статик, возвращает именно этот адрес для free, а не смещение от внутренней структуры для собственных нужд и прочий шит типа безопасности для использования с нитями.

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

А если у меня файл состоит исключительно из 0x00?

Если у вас 0x00 значимые символы, тогда это не задача от ТСа, когда он хочет работать с буфером функциями str*(). И вообще вы о чём-то своём, обычный тут через зубы выдавленный техноснобизм. Спор с предыдущим оратором был вообще о том, что он думает, что в конце файла вам обязательно встретится '\0'.

А потом удивляются,

Тю, а потом удивляются, почему всё тормозит, когда вместо того, чтобы быстро завершится, всё судорожно начинает делать free на фрагментированной куче, вместо того чтобы поручить системе одним махом пометить страницы как грязные, которые она всё равно будет делать ровно столько же и так же. Если вы про качество функции, то эту функцию надо документировать, что она выделяет буфер malloc-ом, а не юзает, скажем для малых буферов не стек, а статик, возвращает именно этот адрес для free, а не смещение от внутренней структуры для собственных нужд и прочий шит типа безопасности для использования с нитями.