fclose
fclose
在头文件 | | |
---|---|---|
int fclose(FILE * stream); | | |
关闭给定的文件流。任何未写入的缓冲数据将刷新到操作系统。任何未读取的缓冲数据都将被丢弃。
无论操作是否成功,数据流不再与文件关联,并且如果使用自动分配,则由setbuf
或分配的缓冲区setvbuf
也会被解除关联并解除分配。
如果指针的值stream
在fclose
返回后使用,则行为未定义。
参数
流 | - | 文件流关闭 |
---|
返回值
0
on success, EOF
otherwise.
例
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE* fp = fopen("test.txt", "r"
if(!fp) {
perror("File opening failed"
return EXIT_FAILURE;
}
int c; // note: int, not char, required to handle EOF
while ((c = fgetc(fp)) != EOF) { // standard C I/O file reading loop
putchar(c
}
if (ferror(fp))
puts("I/O error when reading"
else if (feof(fp))
puts("End of file reached successfully"
fclose(fp
}
参考
- C11标准(ISO / IEC 9899:2011):