[Linux]標準ライブラリIOインターフェース、ファイル操作:fopen、fwrite、fread、fclose

標準ライブラリIOインターフェース

fopen()

FILE * fopen ( const char * path, const char * mode );

機能:パラメーターパスで指定された名前でファイルを開き、ストリームに関連付けます。ストリームは、後続の操作で返されたファイルストリームポインターによって識別できます
パス:パスを含むファイル名(パスがない場合、ファイルは現在のディレクトリに作成され
ますモード:ファイルを開くメソッド
戻り値;成功、戻り操作ハンドル-ファイルストリームポインタ;失敗、NULLを返す

ファイルを開く方法

読み取りおよび書き込み権限を制御する文字列(指定する必要があります)
オープンメソッド 説明
「r」 「読み取り専用」モードでファイルを開きます。読み取りのみが許可され、書き込みは許可されません。ファイルが存在する必要があります。存在しない場合、開くことができません。
「w」 「書き込み」モードでファイルを開きます。ファイルが存在しない場合は、新しいファイルを作成します。ファイルが存在する場合は、ファイルの内容をクリアします(元のファイルを削除して新しいファイルを作成するのと同じです)。
「a」 「追加」モードでファイルを開きます。ファイルが存在しない場合は、新しいファイルを作成します。ファイルが存在する場合は、書き込まれたデータをファイルの末尾に追加します(ファイルの元の内容は保持されます)。
「r +」 「読み取りと書き込み」モードでファイルを開きます。どちらも読み取りと書き込みが可能です。つまり、ファイルを自由に更新できます。ファイルが存在する必要があります。存在しない場合、開くことができません。
「w +」 「書き込み/更新」モードでファイルを開きます。これは、「w」と「r」の重ね合わせ効果に相当します。どちらも読み取りと書き込みが可能です。つまり、ファイルを自由に更新できます。ファイルが存在しない場合は、新しいファイルを作成します。ファイルが存在する場合は、ファイルの内容をクリアします(元のファイルを削除して新しいファイルを作成するのと同じです)。
「a +」 「追加/更新」モードでファイルを開きます。これは、「a」と「r」の重ね合わせに相当します。どちらも読み取りと書き込みが可能です。つまり、ファイルを自由に更新できます。ファイルが存在しない場合は、新しいファイルを作成します。ファイルが存在する場合は、書き込まれたデータをファイルの末尾に追加します(ファイルの元の内容は保持されます)。
読み書きの方法を制御する文字列(書き込み不可)
「t」 テキストファイル。書かれていない場合、デフォルトは「t」です。
「b」 バイナリーファイル。

全体として、ファイルを開く方法は6文字のr、w、a、t、b、+で構成され、各文字の意味は次のとおりです
。r(読み取り):読み取り
w(書き込み):書き込み
a(追加):追加
t(テキスト):テキストファイル
b(バイナリ):バイナリファイル
+:読み取りと書き込み

fwrite()

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

機能:ptrが指すメモリブロックからストリーム内の現在の位置にnmemb要素の配列を書き込みます。要素のサイズはsizeバイトです。(実際に書き込まれるサイズはsize * nmembです
ptr:書き込まれるデータ、
サイズ:ブロックサイズ; nmemb:ブロック数
戻り値:成功、ファイルに完全に書き込まれたブロック数を返します;失敗、0を返します

フレッド()

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

機能:ストリームからカウント要素の配列を読み取ります。各要素のサイズはサイズバイトで、ptrで指定されたメモリブロックに格納します。
ptr:読み取りデータを格納するためのバッファーの最初のアドレスを
渡しますサイズ:ブロックサイズ; nmemb:ブロック数-サイズ* nmembは読み取り
ストリームの全長です:fopenファイルストリームポインターによって返される操作ハンドル
戻り値:

成功した場合は完全に読み取られたブロック数を返し、
失敗した場合は0を返し
、最後まで読み取っファイルも0を返します(int feof(FILE * stream)を使用して、最後まで読み取るかどうかを決定できます。ファイル)
推奨事項:ブロックサイズを1に設定します。ブロック数は長さに設定されます

fseek()

int fseek ( FILE * stream, long offset, int whence);

機能:ジャンプファイルの読み取りおよび書き込み位置
オフセット:オフセット
理由:オフセットの相対的な開始位置

SEEK_SET:ファイルの開始位置
;
SEEK_CUR:現在の位置; SEEK_END:ファイルの終了位置。

flclose()

int fclose ( FILE * stream );

機能:ストリームに関連付けられているファイルを閉じて、関連付けを解除します。

おすすめ

転載: blog.csdn.net/weixin_43962381/article/details/115297257