SunOS4.0からLinuxにバイナリを移したところ2バイト以上のデータだと前後バイトのデータが逆になるという問題が起こりました。人にはCPUがIntelだからだと聞きました。CPUが違うバイナリを整形するフィルタなどはないでしょうか?データの解析ができずに困っております。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

Big Endian (Sun) と Little Endian (Intel) の問題ですね。



toysmith さんのいうように、ファイルのフォーマットに依存する
と思います。非常に単純に short のデータが並んでいるだけとか、
long が並んでいるだけなら、

#!/usr/local/bin/perl
while (read(STDIN, $long, 4) == 4) {
print join('',reverse(split('',$long)));
}

という簡単なスクリプトで変換できます。double とか float も同
じです。

しかし、いろんなサイズのバイナリデータが混在してたり、文字が
入ってたりすると、自分で変換プログラムを作る必要があります。
そうはいっても、読むプログラムがあるわけですから、何らかの規
則で並んでいるはずで、上のスクリプトを適当にいじれば作れるで
しょう。

あと考えつくのは、データは変換せずに、Linux 側のプログラムを
改造して、SunOS の方式で書かれたデータをそのまま読めるように
してしまうことです。

例えば、

long endianswaplong(long l)
{
int i;
long tmp;
for (i=0; i<sizeof(long); i++) {
((char*)&tmp)[i] = ((char*)&l)[sizeof(long)-i-1];
}
return tmp;
}

というような関数(群)を作って、読むたびに変換してから利用す
ればいいのです。(動かしてないので、バグがあるかも)
    • good
    • 0
この回答へのお礼

わざわざルーチンまで書いていただき本当にありがとうございます。早速試してみます。

お礼日時:2000/12/14 22:04

ぅ~ん...



エンディアン問題のことではないのですか?
ビットが逆になるということでしたら,練習だと思ってC言語でチャッとフィルターを書いてみてはいかがでしょうか.
1バイト読んでは全ビットを並び替えるだけです.
    • good
    • 0
この回答へのお礼

はい。あのあと調べて「バイトオーダー」とか「エンディアン」と呼ばれるものだと言う事がわかりました。途中にchar型なども混在するかなり面倒なデータなのですが、フォーマットはわかっているので地道にやることにします。初心者だとキーワードがわからなくて検索しても引っかからないことが多いです。そういったキーワードヲ教えていただけるだけでも非常に助かります。どうもありがとうございました。

お礼日時:2000/12/14 22:01

SunOSとLinux(Intel)のマルチプラットホームに対応しているアプリケーションならアプリケーション自体が変換に対応しているはずなんですが。



ファイルフォーマットがわかっているのであれば標準コマンドのddで変換できることがあります。
ただ、あまりに複雑なフォーマットは無理です。
man 1 dd

フォーマットが複雑ならperlなどでスクリプトを作ったほうが早いかもしれません。
    • good
    • 0
この回答へのお礼

全部で512バイトのヘッダと数百MBのデータ部とが有ります。ヘッダ部はビットフィールドも駆使するなどかなり複雑なので、自分でルーチンを作ることにします。
すぐに教えていただきありがとうございました。

お礼日時:2000/12/14 21:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFPOP解析などのアクセス解析に解析されたくないのですが、解析されなく

FPOP解析などのアクセス解析に解析されたくないのですが、解析されなくすることは可能でしょうか?

よく行くサイトさんに解析が取り付けられており少し行きにくくなってしまいました。
別にそのサイトさんで悪い事はしていませんし、するつもりもないですが何となく解析されるのが嫌で…。

やはり解析を避けるのは無理でしょうか?
もし可能でしたら方法を教えて頂けますと幸いです。宜しくお願いします。

Aベストアンサー

アクセス元を隠すために中継サーバ(プロキシ)を使う方法があります。これはどのブラウザでも設定できますね。ただ、プロキシについては自己の責任で使ってください。プロキシには解析された情報が残る可能性があります。
また、ブラウザの情報を隠すことができるブラウザというのもあります。Sleipnirなら日本語になっています。

以前、アメリカのプライバシー団体がアクセス解析できないブラウザを作っていました。
ブックマークが消えていて確認できませんでしたが、これもその団体か関連のプロキシを経由させる仕様になっていました。

QIntel社の最新のCPUってなんですか?

タイトルの通りIntel社の最新のCPUってなんですか?
HPに行ってもIntel Core 2 Extreme とか Intel Core 2 Quad Extreme があるとか・・・。
こんがらがっちゃったんで、聞きました。
今現在の最新のCPUは何ですか?????????(Intel社製)

回答よろしくお願いします。

Aベストアンサー

現行のデスクトップ向けではCore 2 Quad が最新でしょう。
サーバ機用とかはまた他にも出ていますよ。

QAcrobat Reader4.0と5.0、4.0の削除は?

Windows98 と 2000です。
スタートからプログラムの中に、アプリケーションでAcrobat Reader5.0 とフォルダのAdobe Acrobat4.0 (中に 使用許諾書 ・ AdobeAcrobat4.0のアンインストール ・ AcrobatReader4.0 の3個のアプリケーション) が有ります。
5.0があれば4.0は必要ないと思うのですが、Adobe Acrobat4.0を削除しても問題は無いのでしょうか。
ご指導お願いします。

Aベストアンサー

Acrobat4.0と、Acrobat Reader5.0が入ってるんですね?
Acrobat4.0の中身は
Acrobat4.0
Acrobat4.0のアンインストール
Acrobat Distiller4.0
ではありませんか?(Acrobat Reader4.0ではなく)
それだと、ウチと全く同じ状況なんですが。

AcrobatとAcrobat Readerは別のソフトですが・・・
バージョン違い、というものではないです。
AcrobatはPDFファイルを作るソフト、
Acrobat ReaderはPDFファイルを読むだけのソフトです。

PDFファイルをつくることがないなら、Acrobat4.0のアンインストールは問題ないでしょう。
(ただし、ちゃんとアンインストーラから行ってくださいね)

もしPDFファイルを作る必要があるなら、この状況では、Acrobat4.0は必要です。
(Acrobat5.0をお持ちだという様子はなさそうなので)
このときは、できればAcrobat Reader5.0は入れておいたほうがいいでしょう。
Acrobat5.0で作成されたPDF文書が、Acrobat4.0で開けないことがあるからです。

はじめにも触れましたが、自分が似たような状況で、普段はAcrobat4.0でPDFファイルを閲覧していたのですが
いくつかのPDFファイルが開けず、困ったことがあります。
Acrobat Reader5.0を導入したら開けました。
今では両方入れています。
Acrobat5.0を入れるのが一番なんでしょうけど・・・(笑)

それ以来何ヶ月もAcrobat4.0と、Acrobat Reader5.0を共存させていますが
今のところ全く問題はありません。
なので、必要なら、または面倒なら入れておく、不要ならアンインストールでいいと思います。

Acrobat4.0と、Acrobat Reader5.0が入ってるんですね?
Acrobat4.0の中身は
Acrobat4.0
Acrobat4.0のアンインストール
Acrobat Distiller4.0
ではありませんか?(Acrobat Reader4.0ではなく)
それだと、ウチと全く同じ状況なんですが。

AcrobatとAcrobat Readerは別のソフトですが・・・
バージョン違い、というものではないです。
AcrobatはPDFファイルを作るソフト、
Acrobat ReaderはPDFファイルを読むだけのソフトです。

PDFファイルをつくることがないなら、Acrobat4.0のアンインストー...続きを読む

QGmail迷惑フィルタよりもラベルフィルタを優先

Gmailでラベル振り分けを利用しているのですが、
ラベルによるフィルタよりも、迷惑メールフィルターが優先されてしまいます。
そのラベルが付いているものは、迷惑メールあっても受け取りたいのですが、
フィルタの優先度は指定できるのでしょうか?

Aベストアンサー

ラベル付けのフィルターのアクションに「迷惑メールにしない」を付け加えても「迷惑メール」に行きますか?

Qパソコンのデータを移す方法。

パソコンのデータを移そうとしているのですが、一応調べたんですが、何をキーワードにしたらいいのかわかりませんでした・・。過去の記事でいいので教えてください。よろしくお願いしますw

Aベストアンサー

キーワードは

他のパソコンにデータを移す → 「データ移行」
トラブル時の復旧用としてデータを他の場所に保存 → 「バックアップ」

で色々出てきます。


このカテゴリの人気Q&Aランキング

おすすめ情報