C、固定幅文字

私はバイナリファイルに char を読み書きしています。読み取り/書き込みを行うプログラムは、32ビットまたは64ビットのマシンで実行できます。さらに、ファイルは32ビット環境で書かれ、64で読み込まれ、その逆も同様である。

したがって、特定の幅を保証する char を格納する方法が必要です(小さいほど良い)。私はこれを行うために受け入れられた/共通の方法があると確信していますが、私はそれを知らないCの初心者であり、またGoogleを介して何かを見つけることができません..

誰かがそのトリックを知っていますか?

0

1 答え

64/32ビットの問題にかかわらず、 "普通の"現代的なアーキテクチャの char は常に8ビットです。これらは、 int のバイナリ表現や他のタイプ(アーキテクチャによってはサイズやバイト順が異なる可能性があります)をファイルに直接ダンプするときに発生しますが、単純な char 安全です。

...明らかにあなたがエンコーディングを選択する必要があるテキストを書いているなら、それはまったく別の話です...

3
追加された
私はちょうど実際には、データを生成したプログラム、または別のマシン上のそれのコピーで読み取られる実際にURLを書いています。 (それはまた大きな制作物ではありません)ので、私はあらゆるエンコーディングを忘れることは許容されると思っていました。これは受け入れ可能な状況ですか、私はいつもエンコードすべきですか?
追加された 著者 providence,
Cライブラリで使用されているデフォルトのエンコーディングが両端で同じであることがわかっている限り、あなたは問題ありません。
追加された 著者 Matteo Italia,