详解C语言中freopen()函数和fclose()函数的用法

时间:2021-08-13 07:20:42

C语言freopen()函数:打开文件函数,并获得文件句柄

头文件:

?
1
#include <stdio.h>

定义函数:

?
1
FILE * freopen(const char * path, const char * mode, FILE * stream);

函数说明:
参数 path 字符串包含欲打开的文件路径及文件名。
参数mode 请参考fopen()说明.。
参数stream 为已打开的文件指针. Freopen()会将原stream 所打开的文件流关闭, 然后打开参数path 的文件。

返回值:文件顺利打开后, 指向该流的文件指针就会被返回. 如果文件打开失败则返回NULL, 并把错误代码存在errno 中。

范例

?
1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
  FILE * fp;
  fp = fopen("/etc/passwd", "r");
  fp = freopen("/etc/group", "r", fp);
  fclose(fp);
}

C语言fclose()函数:关闭打开的文件
头文件:

?
1
#include <stdio.h>

定义函数:

?
1
int fclose(FILE * stream);

函数说明:fclose()用来关闭先前fopen()打开的文件. 此动作会让缓冲区内的数据写入文件中, 并释放系统所提供的文件资源.

返回值:若关文件动作成功则返回0, 有错误发生时则返回EOF 并把错误代码存到errno.

错误代码:EBADF 表示参数stream 非已打开的文件.