Share via


fclose、_fcloseall

关闭了流 (fclose) 或任何打开关闭流 (_fcloseall)。

int fclose( 
   FILE *stream 
);
int _fcloseall( void );

参数

  • stream
    指向 FILE 结构的指针。

返回值

则流成功关闭,则fclose 返回 0。 _fcloseall 返回关闭流的总数。 指示两函数错误的返回 EOF。

备注

fclose 函数的 stream。 如果 stream 是 NULL,则会调用无效参数处理程序,如 参数验证 中所述。 如果允许执行继续,则将fclose设置errno t为EINVAL 并返回 EOF。 建议 stream 指针在调用此函数之前始终检查。

有关这些内容的更多信息以及其他错误代码,请参见 _doserrno、errno、_sys_errlist 和 _sys_nerr

_fcloseall 关闭所有多余函数 stderr ( stdin,stdout,此外,在 MS-DOS,_stdaux 和 _stdprn) 的流打开。 还可以关闭并删除所有 tmpfile创建的临时文件。 在两种函数中,所有缓存与流在关闭之前刷新。 当关闭了流时,系统分配的缓冲区被释放。 具有 setbuf 和 setvbuf 的用户分配缓冲区不自动释放。

注意:,则这些函数用于关闭流时,基础文件说明符和操作系统句柄 (或文件),以及套接字关闭流。 因此,如果文件初会打开为文件句柄或文件描述符和关闭使用 fclose,也不要调用 _close 关闭文件说明符;请勿调用 Win32 函数 CloseHandle 关闭文件的句柄。

fclose 并防止代码的 _fcloseall 应用程序受到其他线程的干扰。 有关非固定版本fclose,请参见 _fclose_nolock。

要求

功能

必需的标头

fclose

<stdio.h>

_fcloseall

<stdio.h>

有关其他兼容性信息,请参见“简介”中的兼容性

示例

请参见_fopen示例。

.NET Framework 等效项

请参见

参考

流 I/O

_close

_fdopen、_wfdopen

fflush

fopen、_wfopen

freopen、_wfreopen