整数を表すバイナリ ファイルを作成したいと思います。ファイルは4バイトである必要があると思います。Linuxを使用しています。どうやってするか?別の質問: そのファイルの内容を C の整数に割り当てるにはどうすればよいですか?
56249 次
4 に答える
16
標準 Cfopen()
では、モードがバイナリ モードで"wb"
書き込み (および読み取り) できるようにします。したがって、次のようになります。"rb"
#include <stdio.h>
int main() {
/* Create the file */
int x = 1;
FILE *fh = fopen ("file.bin", "wb");
if (fh != NULL) {
fwrite (&x, sizeof (x), 1, fh);
fclose (fh);
}
/* Read the file back in */
x = 7;
fh = fopen ("file.bin", "rb");
if (fh != NULL) {
fread (&x, sizeof (x), 1, fh);
fclose (fh);
}
/* Check that it worked */
printf ("Value is: %d\n", x);
return 0;
}
これは以下を出力します:
Value is: 1
于 2009-06-11T07:46:09.483 に答える
4
オペレーティングシステムの観点からは、すべてのファイルはバイナリファイルです。C(およびC ++)は、改行文字を改行/キャリッジリターンのペア(Windowsの場合)に展開するような機能を提供する特別な「テキストモード」を提供しますが、OSはこれを認識していません。
Cプログラムで、この特別な処理を行わずにファイルを作成するには、fopen()の「b」フラグを使用します。
FILE * f = fopen("somefile", "wb" );
于 2009-06-11T07:50:17.243 に答える
3
バイナリの読み取り/書き込み用にファイルを開きます。fopen は、b
ファイル アクセス モード パラメーターのスイッチを取ります -ここを参照してください
テキスト ファイルとバイナリ ファイルの違い、およびバイナリ ファイルにデータを書き込むためのコード サンプルについては、ウィキペディアの fopen ページを参照してください。
于 2009-06-11T07:43:27.290 に答える
1
man
syscallsopen
およびwrite
を参照してくださいread
。
于 2009-06-11T07:47:52.273 に答える