fclose 或 fflush 子例程

用途

关闭或清仓流。

标准 C 库 (libc.a)

语法

#include <stdio.h>
int fclose ( Stream)
FILE *Stream;
int fflush ( Stream)
FILE *Stream;

描述

弗夫关 子例程将缓冲数据写入到 参数指定的流中,然后关闭该流。 当调用 退出 子例程时,将对所有打开的文件自动调用 弗夫关 子例程。

弗卢什 子例程为 参数指定的流写入任何缓冲数据并使该流保持打开状态。 弗卢什 子例程标记st_ctimest_mtime要更新的底层文件的字段。

如果 参数是空指针,那么 弗卢什 子例程将对所有定义了该行为的流执行此清空操作。

参数

描述
指定输出流。

返回值

在成功完成后, 弗夫关弗卢什 子例程将返回值 0。 否则,会返回值 EOF。

错误代码

如果 弗夫关弗卢什 子例程不成功,那么将通过 错误号 全局变量返回以下错误:

描述
再一次 Stream 参数下的文件描述符设置了 O_NONBLOCKO_NDELAY 标志,在写操作中将延迟该进程。
EBADF 底层的 文件描述符无效。
EFBIG 尝试写入超过进程文件大小限制或文件大小最大限制的文件。 请参阅 乌勒明 子例程。
EFBIG 该文件是常规文件,并且尝试在与相应流关联的最大偏移量处或超过该偏移量时进行写入。
EINTR 弗卢什 子例程已被信号中断。
EIO 该进程是尝试写入其控制终端的后台进程组的成员,设置了 停止 信号,该进程既不忽略也不阻止 SIGTTOU 信号,并且该进程的进程组是孤立的。 此错误也可能在依赖于实现的条件下返回。
ENOMEM 底层流由 open_memstream () 或 open_wmemstream () 创建 并且可用内存不足。
ENOSPC 在包含文件的设备上或在 fmemopen () 使用的缓冲区中没有剩余可用空间 函数。
EPIPE 尝试写入一个管道或 FIFO ,该管道或 FIFO 未打开以供任何进程读取。 SIGPIPE 信号将发送到该进程。
ENXIO 对不存在的设备发出了请求,或者该请求超出了该设备的能力