C文件操作函数_笔记

参考文章:

http://www.jb51.net/article/37688.htm

http://www.cnblogs.com/hnrainll/archive/2011/09/16/2178706.html

http://www.cnblogs.com/joeblackzqq/archive/2011/04/11/2013010.html

 

1  fopen 打开文件

FILE *fopen(char *filename, char *mode)
    filename 文件名称
    mode 打开模式:                                            
        r   只读方式打开一个文本文件                           
        rb  只读方式打开一个二进制文件                         
        w   只写方式打开一个文本文件                           
        wb  只写方式打开一个二进制文件                         
        a   追加方式打开一个文本文件                           
        ab  追加方式打开一个二进制文件                         
        r+  可读可写方式打开一个文本文件                       
        rb+ 可读可写方式打开一个二进制文件                     
        w+  可读可写方式创建一个文本文件                       
        wb+ 可读可写方式生成一个二进制文件                     
        a+  可读可写追加方式打开一个文本文件                   
        ab+ 可读可写方式追加一个二进制文件

 

 

 

fopen与open的区别:

 

1、缓冲文件系统与非缓冲系统的区别

缓冲文件系统(fopen):在内存为每个文件开辟一个缓存区,当执行读操作,从磁盘文件将数据读入内存缓冲区,装满后从内存缓冲区依次读取数据。写操作同理。

内存缓冲区的大小影响着实际操作外存的次数,缓冲区越大,操作外存的次数越少,执行速度快,效率高。缓冲区大小由机器而定。

借助文件结构体指针对文件管理,可读写字符串、格式化数据、二进制数据。

非缓冲文件系统(open):依赖操作系统功能对文件读写,不设文件结构体指针,只能读写二进制文件。

 

2、open属于低级IO,fopen属于高级IO

 

3、open返回文件描述符,属于用户态,读写需进行用户态与内核态切换。

   fopen返回文件指针

 

4、open是系统函数,不可移植

   fopen是标准C函数,可移植

 

5、一般用fopen打开普通文件,open打开设备文件

 

6、如果顺序访问文件,fopen比open快

   如果随机访问文件,open比fopen快

 

 

2  fprintf 传送格式化输出到一个文件中

3  fscanf 从一个流中执行格式化输入

4  clearerr 清除文件流的错误旗标

5  fclose 关闭文件

6  fdopen 将文件描述符转为文件指针

7  feof 检查文件流是否读到了文件尾

8  fflush 更新缓冲区

9  fgetc 从文件中读取一个字符

10  fgets从文件中读取字符串

11  fileno 返回文件流对应的文件描述符

12  fputc 将指定字符写入文件流中

13  fputs 将指定字符串写入文件中

14  freopen 打开文件

15  fseek 移动文件流读写位置

16  ftell 取得文件流的读取位置

17  fwrite 将数据写至文件流

18  getc 从文件中读取一个字符,同fgetc

19  getchar 从标准输入设备中读取一个字符

20  gets 从标准输入设备中读取字符串

21  mktemp 产生唯一的临时文件名

22  putc 将指定字符写入文件中,同fputc

23  putchar 将指定字符写入到标准输出设备

24  rewind 重设文件流读写位置到文件开头,同 fseek(stream, 0, SEEK_SET)

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值