Нет способа узнать. Вот почему формально указанные форматы файлов обычно требуют порядка байтов или предоставляют опцию (как в случае с юникодом, как упоминалось в MSN). Таким образом, если вы читаете файл с определенным форматом, вы знаете, , что он уже с прямым порядком байтов, потому что тот факт, что он находится в этом формате, подразумевает особый порядок байтов.
Другим хорошим примером этого является порядок сетевых байтов - сетевые протоколы, как правило, с прямым порядком байтов, поэтому, если вы являетесь процессором с прямым порядком байтов, разговаривающим с Интернетом, вы должны писать вещи задом наперед. Если вы в порядке вещей, вам не нужно об этом беспокоиться. Люди используют функции, такие как htonl и ntohl , для предварительной обработки того, что они пишут в сеть, чтобы их исходный код был одинаковым на всех машинах. Эти функции не выполняют никаких действий на машинах с прямым порядком байтов, но они переворачивают байты на машинах с прямым порядком байтов.
Ключевое понимание заключается в том, что порядковый номер является свойством того, как конкретные архитектуры представляют слова. Это не мандат, что они должны писать файлы определенным образом; это просто говорит вам, что инструкции по архитектуре ожидают, что многобайтовые слова будут иметь порядок байтов определенным образом. Машина с прямым порядком байтов может написать ту же последовательность байтов, что и машина с прямым порядком байтов, она может просто использовать еще несколько инструкций для этого, потому что она должна переупорядочить байты. То же самое верно для машин с прямым порядком байтов, пишущих форматы с прямым порядком байтов.