このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
ビッグ・エンディアンとリトル・エンディアン形式の間の変換ロジックは、大変単純です。 図3.4および図3.5は、適切なバイトを交換して1つの形式から別の形式に変換する様子を示しています。
アーキテクチャの異なるマシンが接続されているネットワーク経由の通信を正しく行うために、通常は、ネットワークに送信される前にデータが転送側でネットワーク・バイト・オーダーに変換され、宛先ホストでパケットが受信された後に受信データがホスト・バイト・オーダーに変換し直されます。 ntohl()
やhtonl()
などの変換ルーチンを使用すると、ネットワーク・バイト・オーダーからホスト・バイト・オーダーへ、ホスト・バイト・オーダーからネットワーク・バイト・オーダーへそれぞれ変換できます。
構造体、共用体またはクラス・オブジェクトのメンバー・データの場合、構造体メンバーは、パフォーマンスの低下を防ぐために、メンバーの中で最もサイズの大きいバイトに位置合せされます。 次の例では、mystruct
のサイズは8バイトです。
// 4-byte alignment struct mystruct { char a; // size = 1 byte // 3 bytes padding int i; // size = 4 bytes };
ただし、次の例では、i
メンバーのサイズが8バイトなので、mystruct
のサイズは16バイトです。
// 8-byte alignment struct mystruct { char a; // size = 1 byte // 7 bytes padding double i; // size = 8 bytes };