fclose, _fcloseall
关闭流 (fclose) 或关闭所有打开的流 (_fcloseall)。
int fclose(
FILE *stream
);
int _fcloseall( void );
参数
- stream
指向FILE结构。
返回值
fclose如果流已成功关闭,则返回 0。 _fcloseall返回的流已关闭的总数。 这两个函数返回EOF表示错误。
备注
fclose正常关闭stream。 如果stream是NULL,调用无效参数处理程序,如中所述参数验证。 如果允许执行继续, fclose设置errno到EINVAL ,并返回EOF。 建议的stream指针始终检查才能调用此函数。
请参阅 _doserrno、 errno、 _sys_errlist 和 _sys_nerr 有关这些和其他错误代码的详细信息。
The _fcloseall function closes all open streams except stdin, stdout, stderr (and, in MS-DOS, _stdaux and _stdprn). 它还将关闭并删除创建的任何临时文件tmpfile。 在这两个函数中,流相关联的所有缓冲区都刷新前到结束。 关闭流时,将释放系统分配的缓冲区。 用户使用其指定的缓冲区setbuf和setvbuf不会自动释放。
注意: 时关闭流中使用这些函数时,基础文件描述符和操作系统文件句柄的套接字) 都将关闭,以及该流。 因此,如果打开的文件作为文件处理或文件描述符并关闭与fclose,也不执行调用_close关闭的文件描述符。 不调用 Win32 函数CloseHandle关闭文件句柄。
fclose和_fcloseall包含代码,以针对其他线程干扰的保护。 对于非锁定版本的fclose,请参阅_fclose_nolock。
要求
功能 |
所需的页眉 |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
其他兼容性信息,请参阅兼容性的介绍。
示例
有关示例,请参阅 fopen。