Появилась проблема с чтением из файла с помощью fread. Вроде бы возвращает нужное количество байт, но значения байт иногда бывают не те. Бывало у Вас такое?
Думается использовать read из posix. Но с другой стороны, почему такой лютый язык программирования как си имеет недоработанные функции?
А может это вообще проблемы железа? Типа ошибки оперативной памяти?
"иногда" - категория качественная. А в вопросе должна быть - количественная. Например - сто раз вызвал fread(), 90 раз получил текст "жопа" и десять раз - "попа"...
Ну да, типа того! В общем открывается файл-фото.png и читается по несколько килобайт(размер буфера) за раз и так пока не прочитает весь файл. Как бы ошибок в алгоритме нет потому что читается всегда нужное количество байт но вот содержимое буфера отлично на 1-5 процентов и то не всегда, иногда 100 процентное совпадение. файл открываю в режиме "rb". Что может быть не так?
Ну, я вот например считаю, что операции потокового чтения вообще нужно применять только там, где заведомо размер файла может быть ооооооочень большим - логи сквида, например. А для файлов, размер которых конечен - конфиги разные там и прочее - вообще проще всего stat()-calloc()-open()-read()-close(). Забрал все содержимое в буфер за один раз и чего хочешь то и делаешь :)
CityCat4, привет. Спасибо что откликнулся! У меня вот так вот! Нужно прочесть кусок файла, посовершать некоторые вычисления может открыть еще пару-тройку файлов, а потом дочитать этот файл. Короче в моей задумке нет возможности читать файл целиком в память. Сейчас думаю проверять позицию дескриптора в файле! Думаешь поможет? Все уже перепробовал, что поддается моему разуму.
CityCat4, Да я в курсе как это делается, просто подумалось будешь с большим энтузиазмом отвечать, предложишь интересные пути решения проблемы. Выхлопа от тебя ноль!
Данил Тунев, Хе-хе, с этим вопросом к маме, пжалста :) Она тебе обьяснит, что тролли - это такие типо козлы :) А довольно странно ожидать от козла молока, да? :D
Нет тут ни проблемы, ни интереса. Есть банальная учебная задачка. И есть некий малолетний халявщик, который считает что вот сейчас тута набигут и кода ему накидают. Ага, щаззз :)
CityCat4, Дак, я не малолетний халявщик, просто хотел "уверенное: нет!" услышать. понимаю что в принципе, чтение из файла с ошибкой не возможно, скорей всего ошибки где то на периферии прожки. Естественно выкладывать весь листинг не буду-как и читать не станешь. Просто показалось что у тебя был опыт отлавливать типичные ошибки. А иначе нафиг ты отвечаешь на многие вопросы?
Данил Тунев, А у меня есть такой опыт :) Все-таки ж с 1996 года я на С пишу. Но я как правило кодом ответ не иллюстрирую - лень. Очень часто человека нужно только подтолкнуть в нужном направлении...