• ベストアンサー

UNIXのバイナリファイル→WINDOWSのバイナリファイル(互換性ありますか?)

UNIXで計算させた数値をバイナリ形式のファイルで保存しています。このファイルをWINDOWS上のメモ帳で開くとUNIX上のものと異なった数値が表示されました。数値の個数は合っているのですが,何か問題はあるでしょうか。互換性がない場合の対処法もご教授願えれば助かります。説明補足が必要な場合はどんどん要求してください。よろしくお願いします。

  • inazu
  • お礼率30% (4/13)

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.3

>UNIX側はHPのWSですから非INTEL系ですね それならエンディアンはインテルと逆になりますね。 >これを解決するフィルタのようなものは無いのでしょうか? あるかもしれませんが、調べたことはありません。 単純にバイトオーダーを入れ替えるだけですので簡単に作れます。 4バイトのlong型で16進でアドレス下位から、12,34,56,78 の場合は、 78,56,34,12 に並べ替えるだけです。(2回やると元に戻ります) charのポインタ型にキャストして入れ替えるのが簡単かな?

その他の回答 (2)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

そのUNIX機のCPUはINTEL系ですか? そうでなければ、数値の内部形式の違いによるものかと思います。(エンディアン) 複数バイトの数値データを表現するときに、小さい桁をアドレス低い方から 使うか、高い方から使うかの違いがあります。 こちらをご覧ください。 http://yougo.ascii24.com/gh/00/000012.html もし、違うなら数値の表現形式が独自のものかもしれません。

inazu
質問者

補足

UNIX側はHPのWSですから非INTEL系ですね。 参考になりました。これを解決するフィルタのようなものは無いのでしょうか?

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

普通、「バイナリ形式のファイル」と言えば、 非テキストファイル…つまり、「メモ帳で開けないようなファイル」 のことを指すのですが。 バイナリ形式というのは単にテキスト形式ではないということで、 さまざまな種類があります。 この場合問題になるのは、まずUNIXでどんなプログラムでバイナリ形式の ファイルを作成したかです。 (あるいは自分で作ったプログラム?)

inazu
質問者

補足

自作ですが、具体的に示します。 テキストのファイル出力fopen(fname,"w")でデータを 1 2 3 をバイナリ形式でfopen(fname,"wb")で出力する。 UNIXでの表示プログラムでは、1,2,3が表示されるが、FTPでバイナリ形式でWindowsに持ってきて、同じプログラム(Windowsでコンパイル済み)で表示するとうまく表示されない。 バイナリのデータファイルがUNIXとWindowsで同じ構造ではないということでかね?データ互換を可能にするフィルタソフトみたいなものは無いのでしょうか?

関連するQ&A

  • バイナリ

    VB6.0を使っています。 全てのファイル(Word、エクセル、Exe、Txtなどなんでも)はバイナリファイルとして扱えるのですか? バイナリファイルとして読み込んで、別名で保存して、 また、元の形式に戻すにはどのようにしたらよいのでしょうか? バイナリモードでOpenして 1バイトずつ、 バイナリモードで書き込めばいいのでしょうか? また、読む場合は、 バイナリモードで開いて、 1文字ずつ 何モードで書き込めばいいのでしょう? バイナリでいいのですか? ファイルの形式などよくわかっていません。。。。

  • メールにバイナリーファイルを添付できないんです

    現在、いわゆるメーラーと言われるアプリケーションを作成しています。 メッセージのみのやり取りは正常に行える様になっています。 またTEXT形式のファイルの場合も問題なく添付できます。 しかし、「Content-Type: text/plain;」で送信を行っている為、どうしてもバイナリー形式のファイルの送信が正常に行えません。 どうも、NULL文字があった場合に問題がある様なのですが・・・ バイナリー形式を添付して送信する場合、上記のコマンドはどのように記述するのが正解なのでしょうか? それとも、バイナリー形式の添付ファイルを送信する場合は、まったく別のコマンドが必要なのでしょうか? どのなたか御存知でしたら御教授を御願いいたします。

  • バイナリー保存のN88BASICプログラムを再現するには

    N88BASICバイナリー保存プログラムのWinXP上でのN88互換ソフト読み出し法は 30年以上前に作成したDOS/N88BASICのプログラムファイル類を所有しております。 しかし、バイナリー形式で保存しておりましたので最近のWinXP上で動作する、N88互換BASIC では読み込みできません。 アスキーセーブしていなかったためですが、何とかバイナリー形式で保存したプログラム類を Windows上で再現したいのですが、良い方法は無いでしょうか。 一度NEC営業所へ当時のパソコン環境がないか質問しようかな、とも思っております。 その前に皆さんのお知恵を拝借したい。 よろしくお願いいたします。 アオバ

  • バイナリファイルを画像形式のファイルとして保存

    バイナリファイルをJPEGの様な画像形式のファイルとして保存するにはどうすればいいですか?

  • バイナリ形式など、ファイルサイズを小さく保存したい

    あるファイルへデータを書き込み保存したいのですが、テキスト形式ではなく、バイナリ形式など、ファイルサイズが小さくて済む書き込み方法はないでしょうか?

  • UNIXシェルプログラム等からバイナリーファイルを作成する方法

    UNIX環境で、ある出力を得るために、複数の Perl スクリプト、シェル スクリプト、またバイナリのプログラムを決まった手順で実行しています。最近になって、これらのプログラムをすべて他の人に譲り渡す必要が生じたのですが、スクリプトの中にソースは配布できないものが含まれています。 そこで、これらのプログラムをまとめて一つのバイナリ実行ファイルを作成できないかと思案しているのですが、それは可能でしょうか。また可能な場合、どのようにしたらよいのか教えていただけないでしょうか。 よろしくお願いします。

  • 互換ファイル作成プログラムは著作権侵害?

    互換ファイル作成プログラムについて質問です。 あるデータをWEB経由で送信するシステムがあります。 入力は専用システムであるため、コピーや貼付けが自由にはできません。 このシステムには、入力したデータをパソコンに保存する機能があり、保存したデータを呼び出して、送信することができます。 保存ファイルはバイナリ形式なのですが、何とかデータフォーマットを解読することができました。 そこで、エクセルVBAを使って保存ファイルと同じ形式の互換ファイルを作るプログラムを作ってみました。これで、入力がだいぶ楽にできるようになります。 ここからが質問です。 この互換ファイル作成プログラムをシステムを使っている不特定多数に公開することは著作権侵害とか何か違法行為となるのでしょうか?

  • オブジェクトのバイナリ保存

    アプリケーションで扱うデータの保存方法を模索中なのですが iniファイルやxmlファイルのような形式ですと、テキストファイルで変更することができるので BinaryFormatterを使用してバイナリで保存しようと考えています。 そこで、iniファイルやxmlのようにテキストファイルで保存する場合と BinaryFormatterを用いてバイナリ形式で保存する場合を比較したとき、 どちらの方が処理的に有利(処理が早い、軽いなど)とかあるのでしょうか? また、何度も何度もファイルへの書き込み処理が発生する場合、 どちらの方が処理的に有利(処理が早い、軽いなど)とかあるのでしょうか? 以上、よろしくお願いします。 環境 .NET FrameWork 2.0

  • 2000から2007への互換機能パックのことについて

    Word、Excel、および PowerPoint 2007 用ファイル形式互換機能パックをインストールしました。 その説明文で、 Microsoft Office XP または Office 2003 と共に互換機能パックをインストールすることで、2007 Microsoft Office system の新機能であるOpen XML 形式を使用してファイルを開いたり、編集、保存、または作成できます。Office 2000 のユーザー、および Windows 2000 SP4 以降のユーザーは、Windows エクスプローラ内からOpen XML 形式をバイナリ ファイル形式に変換できます。とありますが・・・ ● 「Windows エクスプローラ内からOpen XML 形式をバイナリ ファイル形式に変換」とは、どのような意味のことですか?わかりやすく教えて下さい。よろしくお願い致します。

  • バイナリで配布されているプログラムをインストールする際、ディストリビューションとか関係ないんですか?

    すみません。PC-UNIX初心者です。 今、FreeBSDとSolaris10とDebianとFedoraCoreが入っているんですが、とりあえず、プログラム開発環境を作りたいと思いまして、ApacheとPHPとMySQLをインストールしようとおもいました。 書籍の解説&CDには、tar.gz形式のファイルが入っていますが、どのディストリビューションでもこれらのバイナリファイルはインストール可能なんでしょうか?ディストリビューション特有のパッケージ(RPMなど)があることは、知っているんですが、よくサイトで配布されているtar.gz形式とかのバイナリファイルまたはソースファイルは、どのディストリビューションでもインストール可能なようにできているんでしょうか? そもそもLinuxとFreeBSDとかは構造および開発経緯が違う?から、一緒のファイル(この場合だとhogehoge.tar.gz)でインストールを行えるとは思いもよりませんでした。これは、カーネルが同じだからできるという解釈でいいんでしょうか?それともFreeBSDとLinuxではカーネルは違うんでしょうか? PC-UNIXはディストリビューション間で互換性を保とうとカーネルを同じにしているんでしょうか? 詳しい方、よろしくお願いします。

専門家に質問してみよう