fclose(3) - Linux 手册页

名称

fclose - 关闭一个流

概要

#include <stdio.h>

int fclose(FILE *fp);

描述

fclose() 函数会刷新由 fp 指向的流(使用 fflush(3) 写入任何缓冲的输出数据)并关闭底层的的文件描述符。

返回值

成功完成时返回 0。 否则,返回 EOF,并且 errno 被设置为指示错误。 在任何一种情况下,对流的任何进一步访问(包括对 fclose() 的另一个调用)都会导致未定义行为。

错误

EBADF
fp 底层的文件描述符无效。

fclose() 函数也可能失败并设置 errno,原因与例程 close(2)write(2)fflush(3) 指定的任何错误相同。

符合

C89, C99。

说明

请注意,fclose() 仅刷新 C 库提供的用户空间缓冲区。 为了确保数据物理存储在磁盘上,内核缓冲区也必须刷新,例如,使用 sync(2)fsync(2)

参见

close(2), fcloseall(3), fflush(3), fopen(3), setbuf(3)

引用自

awk(1), explain(1), explain_fclose(3), explain_fclose_or_die(3), fmemopen(3), fopencookie(3), popen(3), xdr(3)