知る方法はありません。これが、正式に指定されたファイル形式が通常、エンディアンを義務付けるか、オプションを提供する理由です (MSN が述べたように、Unicode と同様に)。このようにして、特定の形式のファイルを読み取っている場合、その形式であるという事実は特定のエンディアンを意味するため、それがすでにビッグエンディアンである ことがわかります。
これのもう 1 つの良い例は、ネットワーク バイト オーダーです。ネットワーク プロトコルは通常、ビッグ エンディアンです。そのため、インターネットと通信するリトルエンディアン プロセッサの場合は、逆に記述する必要があります。ビッグエンディアンなら気にする必要はありません。htonl や ntohlなどの関数を使用して、ネットワークに書き込む内容を前処理し、ソース コードがすべてのマシンで同じになるようにします。これらの関数は、ビッグ エンディアン マシンでは何もしないように定義されていますが、リトル エンディアン マシンではバイトを反転します。
重要な認識は、エンディアンが特定のアーキテクチャが単語を表現する方法のプロパティであるということです。特定の方法でファイルを作成しなければならないという義務はありません。アーキテクチャ上の命令では、マルチバイト ワードのバイトが特定の順序で並べられることを期待していることを示しているだけです。ビッグ エンディアン マシンは、リトル エンディアン マシンと同じバイト シーケンスを書き込むことができますが、バイトを並べ替える必要があるため、それを行うためにさらにいくつかの命令を使用する場合があります。同じことは、ビッグ エンディアン形式を書き込むリトル エンディアン マシンにも当てはまります。