1. fopen函数

 #include <stdio.h>
FILE *fopen(const char *path, const char *mode)

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

参数说明:

  mode: 1)r        以只读方式打开文件,该文件必须存在。

        2) r+     以可读写方式打开文件,该文件必须存在。

        3) rb+   以读写打开一个二进制文件,允许读写数据,文件必须存在。

        4) rw+  打开一个文本文件,允许读和写。

5) w     打开只写文件,若文件存在则文件长度清为0,即该文件内容消失,若文件不存在则创建该文件。

        6) w+   打开可读写文件,若文件存在则文件长度清为0,即文件文件内容会消失。若文件不存在则创建文件文件。

      7) a     以附加的方式打开只写文件,若文件不存在,则会创建文件文件,如果文件存在,则写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

      8) a+   以附加的方式打开可读写文件。若文件不存在,则会创建该文件,如果文件存在,则写入的数据 会被添加到文件尾,即文件碑的内容会被保留。(原来的EOF符不保留)

9) wb   只写打开或新建 一个二进制文件。只允许写数据。

10)wb+ 读写打开或新建一个二进制文件;只允许写数据。

11)ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

12)at+   打开一个文件文件

总结:a--append,添加新内容到文件尾,删除原文件的EOF。

t--打开的文件的类型是文本文件,

+--表示对文件既可以读也可以写。

fopen建立的新文件会具有 S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH(0666)权限。

二进制文件和文本文件的区别:

1.  在windows系统中,文本模式下,文件以“\r\n”代表换行,若以文件模式打开文件,并用fputs等函数写入换行符“\n”时,函数会自动在“\n”前面加上"\r"。即实际写入文件的是“\r\n”.

2.  在类UNIX/LINIX系统中文本模式下,文件以“\n”代表换行。所以unix在文本模式和二进制模式下并无区别。

注意:在文件操作时

  1)在定义文件指针时,要将文件指针指向空;如FILE *fp = NULL;

  2)文件操作完成后,需要将文件关闭,一定要注意,否则会造成文件所占用的内存泄漏和在下次访问时出现问题。

  3)文件关闭后,需要将文件指针指向空。这样做会防止出现游离指针,而对整个工程造成不必要的麻烦;如:fp = NULL;

 #include <stdio.h>
int fclose(FILE *steream)
关闭一个流。
注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。

最新文章

  1. SAE学习-使用SAE的Storage服务存储图片
  2. shell浅谈之九子shell与进程处理
  3. 无题 MVC
  4. ps技巧
  5. 基于VC的ACM音频编程接口压缩Wave音频(三)
  6. 机器学习职位 &amp; 面经
  7. matlab 非平稳变化时域分析
  8. [编解码] 关于base64编码的原理及实现
  9. 用get方式提交请求的url带有中文参数
  10. 当分页语句遇到union all
  11. 多路查找树之2-3-4树和B树 - 数据结构和算法82
  12. C11 constant expressions 常量表达式
  13. hive发杂数据结构的使用,struct,array,map
  14. 用SharedPreference或文件的方式存储数据
  15. Unity - Photon PUN 本地与网络同步的逻辑分离 (二)
  16. Dom4j基础
  17. kali上部署dvwa漏洞测试平台
  18. hdu3336 Count the string 扩展KMP
  19. pygame资源图片剪裁
  20. springboot中使用druid和监控配置

热门文章

  1. apple store链接格式文档
  2. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q45-Q47)
  3. GitHub 基本常用知识解答
  4. iOS远程推送之友盟Push
  5. .NET下Excel报表的打印
  6. Swift的7大误区
  7. Silverlight项目笔记3:Silverlight RIA Services缓存引发的问题
  8. 多线程基础(六)GCD基础
  9. iOS支付宝集成时遇到的问题整理(2)
  10. spring生命周期