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)