こんばんは。MVAです。 すでにHP-UXは手元にないので、記憶のみで書いていることをご容赦 願います。 Yasumichi Akahoshi wrote: >>ビッグエンディアン,リトルエンディアンの違いによる >>バイトオーダの問題かと考え, >>データをバイト単位でスワップさせてみたのですが >>うまくいきませんでした。 > > * UNIXという考え方 (株式会社オーム社) > o 判型: A5 判 168 ページ > o Mike Gancarz 著, 芳尾桂 監訳 > o 2001 年 2 月 23 日 初版発行 > o 本体価格 1,600 円 (ISBN 4-274-06406-9) > > 上記の本では、こういう場合はUNIXの流儀では、ASCII形式で扱うべきだと書 > いてありました。これが、正しいかは分かりませんが、個人的にはデータの移植 > 性が高いと思います。(サイズは大きくなるでしょうが。) > > 単純にバイトオーダの問題といってもint,floatなどのデータサイズの違いも > 有るかも知れませんし、アーキテクチャによって構造体の占めるサイズが変わる > ということも有ります。(HP-UXについては、詳しく知りませんが。) HP-UX 8.0 では、CPUによって同じ構造体でもサイズが変わることが ありえたはずです。たしか double型(8バイト)で、MC680x0 では 4バイト単位、HP-PA(PA-RISC)では8バイト単位で内部的にそろえら れていたかと。 単純にint型ならどちらも4バイト(32ビット)かつ、2の補数表現な ので、バイトオーダ程度で済むはずです。実際にMS-DOSとバイナリ データをやりとりしていましたし。 > おそらく、よっぽど古いマシンか大量のデータでなければ、テキストデータを > 扱う事によるパフォーマンスの低下は、大きな問題にならないような気がします > (単なる思い込みかも知れませんが。) # HP-UX 8.0 ということは、「よっぽど古いマシン」の部類に入る # んじゃないかと思いますが。おそらくは、10年以上前。 # 私が使っていたのは、MC68040 の25MHzくらいだったかな。 ちなみに、私が昔かかわっていたCADでは、テキストだとデータサ イズと精度がトレードオフになってしまうため、なんとかバイナリ でやりとりしていました。大きなデータだとフロッピーディスク1 枚に納まらなくなってしまうので… このへんは、ケースバイケー スですね。 -- MVA