Manpages

NAME

fclose - 关 闭 流

SYNOPSIS 总 览

#include <stdio.h>

int fclose(FILE *stream);

DESCRIPTION 描 述

函 数 fclose 将 名 为 stream 的 流 与 它 底 层 关 联 的 文 件 或 功 能 集 合 断 开 。 如 果 流 曾 用 作 输 出 , 任 何 缓 冲 的 数 据 都 将 首 先 被 写 入 , 使 用 fflush(3)

RETURN VALUE 返 回 值

成 功 执 行 返 回 0, 否 则 返 回 EOF 并 设 置 全 局 变 量 errno 来 指 示 错 误 发 生 。 任 何 一 种 情 况 下 , 对 流 再 进 行 存 取 (包 括 再 次 调 用 fclose()) 都 会 带 来 未 定 义 的 结 果 。

ERRORS

EBADF

stream 底 层 的 文 件 描 述 符 是 无 效 的 。

函 数 fclose 也 可 能 失 败 并 置 errnoclose(2), write(2)fflush(3) 指 定 的 值 。

NOTES 要 点

注 意 fclose 仅 仅 刷 新 用 户 空 间 的 由 C 库 提 供 的 缓 冲 。 要 保 证 数 据 被 物 理 地 存 储 到 磁 盘 上 , 必 须 也 刷 新 内 核 缓 冲 。 例 如 , 使 用 sync(2)fsync(2).

CONFORMING TO 标 准 参 考

函 数 fclose 遵 循 ANSI X3.159-1989 (’’ANSI C’’) 标 准 。

SEE ALSO 参 见

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

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh