C言語 - 標準ライブラリ - stdio.h - fread, fwrite


 クラウディア


1. 概要
2. 書式
3. 戻り値

1. 概要

 「fread」「fwrite」は、バイナリストリーム入出力を行う関数です。  「fread」が入力で、「fwrite」が出力なのは、英検5級でも理解できる話です。

2. 書式


#include <stdio.h>

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
 「fread」は、「stream」が指すストリームから、それぞれが「size」バイトの大きさのオブジェクトを「nmemb」個読み込み、「ptr」で指定された場所に保存します。  「fwrite」は、「ptr」で指定された場所から、それぞれが「size」バイトの大きさのオブジェクトを「nmemb」個「stream」が指すストリームに書き込みます。  コンピュータは、馬鹿なので、実際の大きさや個数は知りません。  結局「大きさ×個数」分、読んだり書いたりします。

3. 戻り値

 「fread」と「fwrite」は、読み書きしたバイト数だけストリームのファイル位置インジケータを進め、読み書きしたオブジェクト数を返します。  エラーが発生した場合、またはファイルの終了に達した場合は、指定したものより少ないオブジェクト数 (または 0) を返します。  「fread」は、ファイルの終了とエラーを区別しません。  ファイルの終了かエラーかを判断するためには、呼び出し側が「feof」と「ferror」を使用する必要があります。  「 fwrite」は、書き込みエラーが発生した場合に限って「nmemb」より少ない値を返します。  と、ここまでほぼ、どこかの丸写しなのですが、ここからが肝心。  少なくとも「fwrite」は、戻り値が、第3引数の「nmemb」の値と一致するかどうかで、正常に処理したかどうかを判定できます。  これは、覚えておいた方がいい。

audiobook.jp
AbemaTV 無料体験
損保との違い
TikTok Shop 【リピート用プログラム】
ハイスピードプラン
健康サポート特集
サウンドハウス
【usus ウズウズ】
U-NEXT
5G CONNECT
ベルリッツ
薬屋の独り言
EMEET 1
JETBOY
葬送のフリーレン Prime Video
ネットオークションの相場、統計、価格比較といえばオークファン
アフィリエイトのアクセストレード
EaseUS
それがだいじWi-Fi
Amazonギフトカード
earthcar(アースカー)