fclose 或 fflush 子例程
用途
关闭或清仓流。
库
标准 C 库 (libc.a)
语法
描述
弗夫关 子例程将缓冲数据写入到 流 参数指定的流中,然后关闭该流。 当调用 退出 子例程时,将对所有打开的文件自动调用 弗夫关 子例程。
弗卢什 子例程为 流 参数指定的流写入任何缓冲数据并使该流保持打开状态。 弗卢什 子例程标记st_ctime和st_mtime要更新的底层文件的字段。
如果 流 参数是空指针,那么 弗卢什 子例程将对所有定义了该行为的流执行此清空操作。
参数
| 项 | 描述 |
|---|---|
| 流 | 指定输出流。 |
返回值
在成功完成后, 弗夫关 和 弗卢什 子例程将返回值 0。 否则,会返回值 EOF。
错误代码
如果 弗夫关 和 弗卢什 子例程不成功,那么将通过 错误号 全局变量返回以下错误:
| 项 | 描述 |
|---|---|
| 再一次 | 为 Stream 参数下的文件描述符设置了 O_NONBLOCK 或 O_NDELAY 标志,在写操作中将延迟该进程。 |
| EBADF | 底层的 流 文件描述符无效。 |
| EFBIG | 尝试写入超过进程文件大小限制或文件大小最大限制的文件。 请参阅 乌勒明 子例程。 |
| EFBIG | 该文件是常规文件,并且尝试在与相应流关联的最大偏移量处或超过该偏移量时进行写入。 |
| EINTR | 弗卢什 子例程已被信号中断。 |
| EIO | 该进程是尝试写入其控制终端的后台进程组的成员,设置了 停止 信号,该进程既不忽略也不阻止 SIGTTOU 信号,并且该进程的进程组是孤立的。 此错误也可能在依赖于实现的条件下返回。 |
| ENOMEM | 底层流由 open_memstream () 或 open_wmemstream () 创建 并且可用内存不足。 |
| ENOSPC | 在包含文件的设备上或在 fmemopen () 使用的缓冲区中没有剩余可用空间 函数。 |
| EPIPE | 尝试写入一个管道或 FIFO ,该管道或 FIFO 未打开以供任何进程读取。 SIGPIPE 信号将发送到该进程。 |
| ENXIO | 对不存在的设备发出了请求,或者该请求超出了该设备的能力 |