c言語fwrite関数のまとめ


ヘッダファイル:#include
関数プロトタイプ:size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream);
パラメータ:
buffer:ポインタで、fwriteにとって、データを取得するアドレスです.
size:コンテンツを書き込む各データ項目のバイト数、単位はバイトです.
count:count個のデータ項目を書き込むには、各データ項目sizeバイト;
stream:ターゲットファイルポインタ.
戻り値:
実際に書き込まれたデータ項目数countを返します.
説明:
この関数はストリームをファイルのどこに書きますか?これはファイルの開くモードと関係があり、w+であればfile pointerが指すアドレスから書き始め、その後の内容を置き換え、ファイルの長さは変わらず、streamの位置はcount個数を移動することができる.a+の場合、ファイルの末尾から追加され、ファイル長が大きくなります.
fseekはこの関数に役立ちますが、fwrite関数はユーザー空間バッファに書き込まれ、ファイルに同期していないため、変更後はメモリをファイルに同期し、fflush(FILE*fp)関数に同期することができます.
プログラムの例:
//  fwrite fread fseek
#include 
int main ()
{
    FILE *fp;
    char msg[] = "file content";
    char buf[20];
    fp = fopen("d:\\a\\a.txt","w+");
    if (NULL == fp)
    {
        printf("The file doesn't exist!
"); return -1; } fwrite(msg,strlen(msg),1,fp);// fseek(fp,0,SEEK_SET);// fread(buf,strlen(msg),1,fp);// buf[strlen(msg)] = '\0';// printf("buf = %s
",buf); printf("strlen(buf) = %d
",strlen(buf)); return 0; }