Цитата Сообщение от Владимир Ситников Посмотреть сообщение
Ещё раз: то, что код работает на конкретном ПЛК (на конкретной прошивке) и на конкретном размере файла не означает, что он будет продолжать работать и дальше.

Вы где-нибудь видели гарантии, что SysFileRead читает всегда ровно столько байт, сколько её просили?

Из документации: "The return value is the number of successfully read bytes"
Она запросто может прочитать 1 байт (или 1024 байта или вообще сколько там КДС/ОВЕН задумали) и всего делов.
А у вас потом недорецептура получится. Из всей структуры заполнится только 1 байт, а вы посмотрели, что <>0 и пошли пользоваться такой палёной рецептурой. Счастливой отладки!

Вот и получается, что, возможно, тот ваш код работает только на конкретной прошивке и конкретном размере исходного файла.

Знаете же, что есть слово POSIX и там read не обязано прочитать всё до конца.
ну мы же условились не обсуждать оптимизацию кода , вызов библиотечных функций от этого не измениться, за исключением SysFileRead которая пару циклов дольше прочтется, если что