質問編集履歴

1

本文内のですます口調の統一 / 前提にホストはリトルエンディアンであることを追記 / 何が問題なのか?を追記

2021/01/21 05:01

投稿

self-taught-cs
self-taught-cs

スコア11

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- Ubuntu20.10(Dockerコンテナ)上でホストバイトオーダーを求めようと考えました。一般的にはシェルで簡単に求められると思うのですが、今回はhtonl / ntohl を使って判別したいケースを考えたいです。
3
+ Ubuntu20.10(Dockerコンテナ)上でホストバイトオーダーを求めようと考えました。一般的にはシェルで簡単に求められると思うのですが、今回はhtonl / ntohl を使って判別するケースを考えたいです。また、ホストはx86_64であるためリトルエンディアンであると前提します。
4
4
 
5
5
 
6
6
 
@@ -24,11 +24,11 @@
24
24
 
25
25
  unsigned int x = 0xAABBCCDD;
26
26
 
27
- // htonsはネットワークバイトオーダー(ビッグエンディアン)に
27
+ // htonlはネットワークバイトオーダー(ビッグエンディアン)に
28
28
 
29
- // ntohsはネットワークバイトオーダーの値をホストのエンディアンに変換する
29
+ // ntohlはネットワークバイトオーダーの値をホストのエンディアンに変換する
30
30
 
31
- // すなわち htons(x) == ntohs(x) であればホストバイトオーダーはビッグエンディアンである
31
+ // すなわち htonl(x) == ntohl(x) であればホストバイトオーダーはビッグエンディアンである
32
32
 
33
33
  printf("ホストバイトオーダーは");
34
34
 
@@ -62,13 +62,13 @@
62
62
 
63
63
  ```
64
64
 
65
- 上記プログラムからはビッグエンディアンであると言われ
65
+ 上記プログラムからはビッグエンディアンであると言われます
66
66
 
67
67
 
68
68
 
69
69
  ### 何が問題なのか?
70
70
 
71
- 同ホスト上でodコマンドを使ってエンディアンを求めると、リトルエンディアンであることが確認される。
71
+ 同ホスト上でodコマンドを使ってエンディアンを求めると、リトルエンディアンであることが確認されます。私が該当のソースコードに書いたコードはホストがビッグエンディアンという結果を出していことが今回の問題です
72
72
 
73
73
  ```
74
74
 
@@ -82,7 +82,7 @@
82
82
 
83
83
 
84
84
 
85
- 同様に下記のエンディアンを求めるプログラムからもリトルエンディアンであると言われ
85
+ 同様に下記のエンディアンを求めるプログラムからもリトルエンディアンであると言われます
86
86
 
87
87
  ```c
88
88