2009-06-11 11 views

答えて

1

バイナリ読み取り/書き込み用にファイルを開きます。関数fopenは、ファイルアクセスモードパラメータのbスイッチを取る - see here

fopen()ができます、標準のCでバイナリファイルに

11

をテキストとバイナリファイルの違いだけでなく、データを書き込むためのコードサンプルのためfopen page in Wikipediaを参照してください。従って、バイナリモード(読み込み、"rb")書き込むモード"wb"

#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 
+2

:Cプログラムで

、この特別扱いせずにファイルを作成するには、関数fopen()の「B」フラグを使用するモードの文字列もできます文字「b」を最後の文字として、または上記の2文字の文字列 のいずれかの文字間の文字として使用します。これは厳密にC89との互換性のためであり、効果はありません。 のLinuxを含むすべてのPOSIX準拠のシステムでは、 'b'は無視されます。 (バイナリファイルへの入出力を行い、あなたのプログラムが非Unix環境に移植されることが予想される場合は、他のシステムではテキストファイルとバイナリファイルを別々に扱い、 'b'を追加するとよいでしょう。 – tr9sh

1

システムコールopenwriteおよびreadについては、manを参照してください。

3

オペレーティングシステムの観点からは、すべてのファイルがバイナリファイルです。 C(およびC++)は、改行文字を改行/改行のペア(Windowsの場合)に展開するような特殊な「テキストモード」を提供しますが、OSはこれについて知りません。 (男性のfopenを経由して)これを覚えておく

FILE * f = fopen("somefile", "wb"); 
関連する問題