3

整数を表すバイナリ ファイルを作成したいと思います。ファイルは4バイトである必要があると思います。Linuxを使用しています。どうやってするか?別の質問: そのファイルの内容を C の整数に割り当てるにはどうすればよいですか?

4

4 に答える 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

mansyscallsopenおよびwriteを参照してくださいread

于 2009-06-11T07:47:52.273 に答える