命名空间
变体
操作

std::fclose

来自 cppreference.com
< cpp‎ | io‎ | c
 
 
 
 
定义在头文件 <cstdio>
int fclose( std::FILE* stream );

关闭给定的文件流。任何未写入的缓冲数据将被刷新到操作系统。任何未读的缓冲数据将被丢弃。

无论操作是否成功,流都将不再与文件相关联,并且由 std::setbufstd::setvbuf 分配的缓冲区(如果有)也将被解除关联并被释放(如果使用了自动分配)。

如果在 fclose 返回后使用指针 stream 的值,则行为未定义。

内容

[编辑] 参数

stream - 要关闭的文件流

[编辑] 返回值

0 成功时,否则为 EOF

[编辑] 示例

#include <cstdio>
#include <cstdlib>
 
int main()
{
    int is_ok = EXIT_FAILURE;
    FILE* fp = std::fopen("/tmp/test.txt", "w+");
    if (!fp)
    {
        std::perror("File opening failed");
        return is_ok;
    }
 
    int c; // Note: int, not char, required to handle EOF
    while ((c = std::fgetc(fp)) != EOF) // Standard C I/O file reading loop
        std::putchar(c);
 
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
    {
        std::puts("End of file reached successfully");
        is_ok = EXIT_SUCCESS;
    }
 
    std::fclose(fp);
    return is_ok;
}

输出

End of file reached successfully

[编辑] 另请参阅

打开一个文件
(函数) [编辑]
使用不同的名称打开现有的流
(函数) [编辑]
刷新输出区域缓冲区并关闭关联的文件
(std::basic_filebuf<CharT,Traits> 的公共成员函数) [编辑]
C 文档 for fclose