C言語 バイナリファイルの書き込み バイナリファイルのコピー - stdio.h - [ fwrite ]

2008.09.24 Wednesday | by LRESULT


イナリファイルの書き込みには、fwrite()関数を使用します。

fopen()のオープンモードを、"wb"とするのを忘れないようにして下さい。


fwrite
書式 size_t fwrite( const void *buf, size_t size, size_t num, FILE *fp )
機能 バイナリファイルを書き込む
引数 const void *buf : バイナリデータを書き込むバッファ
size_t size : データ要素1個のサイズ
size_t num : データの個数
FILE *fp : ファイル(ストリーム)ポインタ
戻り値 書き込んだデータ要素の個数を返します。





サンプルコード
バイナリファイルコピーのサンプルです。
10x10ドットのビットマップファイル「test.bmp」を
バイナリファイルとして読み込んだ後、「copy.bmp」として内容をコピーして出力します。
#include <stdio.h>

int main(void)
{
  FILE *fpr;
  FILE *fpw;
  char *fname_r = "test.bmp";
  char *fname_w = "copy.bmp";
  unsigned char buf[10000];
  int i, size;

  fpr = fopen( fname_r, "rb" );
  if( fpr == NULL ){
    printf( "読込用 %sファイルが開けません¥n", fname_r );
    return -1;
  }

  fpw = fopen( fname_w, "wb" );
  if( fpw == NULL ){
    printf( "書込用 %sファイルが開けません¥n", fname_w );
    return -1;
  }

  size = fread( buf, sizeof( unsigned char ), 10000, fpr );
  fwrite( buf, sizeof( unsigned char ), size, fpw );

  fclose( fpr );
  fclose( fpw );

  printf( "%sファイルのコピーが終わりました¥n", fname_w );
  return 0;
}




結果
copy.bmpファイルのコピーが終わりました
成功すると、このように表示され、
「test.bmp」ファイルと同じフォルダに「copy.bmp」がコピー出来ていたら成功です。

fopen()のモードを "wb" にするのを忘れないようにして下さい。
このサンプルでは、10000バイトを超えるファイルを
コピー出来ませんのでご注意下さい。

カテゴリ:C言語 stdio.h | 22:32 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

トラックバック機能は終了しました。

トラックバック