fclose、_fcloseall
ストリーム (fclose) を閉じ、またはすべての開いているストリーム (_fcloseall) を閉じます。
int fclose(
FILE *stream
);
int _fcloseall( void );
パラメーター
- stream
FILE 構造体へのポインター。
戻り値
fclose、ストリームが正常に閉じた 0 を返します。 _fcloseall を 決めるストリームの総数を返します。 エラーを示すどちらの関数を返します。EOF。
解説
fclose 関数は streamを閉じます。 stream が NULL の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続 fclose は EINVAL に errno を設定し、EOFを返します。 stream のポインターがこの関数を呼び出す前に、常にチェックすることをお勧めします。
エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
_fcloseall 関数は stdin、stdoutの stderr 閉じられます (および、MS-DOS、_stdaux と _stdprnを除くすべてのオープン ストリームを)。 また、tmpfileで作成した一時ファイルを閉じ、削除します。 どちらの関数では、すべてが閉じる前にストリームに関連付けられたをフラッシュされますバッファリングされます。 システムが割り当てたバッファーは、ストリームを閉じるときに解放されます。 setbuf と setvbuf のユーザーが割り当てたバッファーは自動的に解放されません。
ストリームを閉じるには、これらの関数を使用する場合注意 : 基になるファイル記述子とオペレーティング システムのファイル ハンドル (またはソケット) 終了、ストリームです。 したがって、ファイルが最初に、ファイル ハンドルやファイル記述子開き、fcloseと閉じる、またはファイル記述子を閉じるに _close を呼び出さないでください; ファイル ハンドルを終了する Win32 関数 CloseHandle を呼び出さないでください。
fclose と _fcloseall は他のスレッドで干渉から保護するためのコードが含まれています。 fcloseをロックしないバージョンについては、_fclose_nolockを参照してください。
必要条件
関数 |
必須ヘッダー |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
fopen"の例を参照してください。