文件操作 相关函数浅析

文件操作相关函数

1.打开文件 FILE *fopen(const char * path, const char * mode);

  • 第一个参数:文件路径,例如:"E:/BIT/代码/C语言实例_100"
  • 第二个参数:是打开方式,"r" 只读, "w" 只写, "a" 追加
  • 函数返回值:文件指针
  • 写文件路径时要注意:\t 是转义字符,因此用 / 代替 \ 更好
  • 如果打开文件失败:返回 NULL,因此使用时要有空指针检查
  • 文件指针也可以叫做 句柄
  • 程序可以打开的文件是有限的,打开文件后忘记关闭将导致句柄泄露/资源泄露/文件描述符泄露

2.关闭文件 int fclose(FILE *fp);

  • 参数:需要关闭的文件的文件指针
  • 返回值:成功关闭返回 0 ,否则返回 EOF(-1)
  • 一定要即使关闭,否则可能会造成句柄泄露(或者叫做资源泄露 / 文件描述符泄露)
  • 如果程序退出,文件将自动关闭

3.读文件 size_t fread ( void *buffer, size_t size, size_t count, FILE *fp) ;

  • 函数功能:把数据从磁盘读到内存中
  • 返回值:真实读到的元素个数
  • 第一个参数:内存缓冲区的起使位置
  • 第二个参数:元素大小(字节)
  • 第三个参数:元素个数
  • 第四个参数:文件指针

4.写文件 size_t fwrite(const void* buffer, size_t size, size_t count, FILE* fp);

  • 函数功能:从内存中写到磁盘中
  • buffer:要获取数据的地址
  • size:要写入内容的单字节数
  • count:要进行写入size字节的数据项的个数
  • fp:目标文件指针
  • 返回值:实际写入的数据项个数count

5.错误检查

例如: 如果fopen()打开的是一个不存在的路径,那么将返回NULL

FILE* fp = fopen("E:/BIT/xxx.txt", "a");
	if (fp == NULL) {
		//printf("打开文件失败, %s\n", strerror(errno));
		perror("打开文件失败\n");
		return 1;
	}
  • strerror 通过标准错误的标号errno,获得错误的描述字符串 ,将单纯的错误标号转为字符串描述,方便用户查找错误
  • perror() 在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出

猜你喜欢

转载自blog.csdn.net/qq_40860852/article/details/88395238