私はCでファイルを扱っています。非常に巨大なファイルです。 私はこれらのファイルを読み書きしています(フォーマットされたテキストファイルです)。 私はそれらに拡張子を与えません。 私はちょうどfopen("filename","r")
と言う。異なるオペレーティングシステムでCでファイルを処理する
今ファイルが問題は、私は、Mac OSでそれを実行しています(Leopardは、特定されるように)、私は別のO/S(で同じファイル(拡張子なし)を開いたとき
1 line1 100
2 line2 200
.
.
20000 line 20000 14567
のような内容をあるいWindowsは特にそうです)、プログラムはファイルの内容を読み込めません。 ファイルの書式が異なるためだと思います。
他のo/sと競合しない標準のファイル形式または拡張機能のソリューションはありますか?
ファイルに拡張子がないため、Windowsではファイルを開くことができません。それらを開くのにエラーが発生しますか?それらを読んで?その場合のエラー( 'errno'をチェックする)?また、OSXからWindowsにファイルをコピーするときに、正しい行末が得られるようにコピーしましたか(OSXとWindowsでは異なります)。 –
テキスト形式の形式は、オペレーティングシステムによってほとんど異なります。両方のOSでファイルを「開く」方法について具体的に説明できますか?あなたのプログラムで 'fopen'を呼び出すか、ファイルをダブルクリックしてあなたをしますか? –
両方のシステムで 'fopen(" a "、" rb ");を使ってファイルを開くことを検討してください。 Windowsでは、通常のCRLFからLFへのマッピングは得られませんが(マップするCRLF行の終了がないため)、ファイルを読むことができます。このようなマッピングの欠如は、 'fgets()'やそれに類する行指向関数を使うと問題になります。 'getc()'や他のバイト指向の関数を使用するかどうかは関係ありません。 –