文件操作相关的函数总结

文件操作
<1>.
文件使用方式     含义                         如果指定文件不存在
“r”(只读)      为了输入数据,打开一个已经存在的文本文件       出错
“w”(只写)       为了输出数据,打开一个文本文件            建立一个新的文件
“a”(追加)        向文本文件尾添加数据 出错
“rb”(只读)      为了输入数据,打开一个二进制文件           出错
“wb”(只写)     为了输出数据,打开一个二进制文件           建立一个新的文件
“ab”(追加)     向一个二进制文件尾添加数据              出错
“r+”(读写)      为了读和写,打开一个文本文件             出错
“w+”(读写)       为了读和写,建议一个新的文件             建立一个新的文件
“a+”(读写)        打开一个文件,在文件尾进行读写              建立一个新的文件
“rb+”(读写)       为了读和写打开一个二进制文件               出错
“wb+”(读写)     为了读和写,新建一个新的二进制文件          建立一个新的文件
“ab+”(读写)     打开一个二进制文件,在文件尾进行读和写         建立一个新的文件

 
   注意:在只写的情况打开文件,会删除文件中的内容,
           而在追加情况下打开文件,则不会删除文件中的内容        
<2>.
  1.fread,把磁盘中的数据读到内存中

   FILE* fp = fopen("D:/text.txt","r");//fopen,打开文件
   printf("%s ", strerror(errno));
   if (fp == NULL)
   {
    perror("fopen");//是strerror(errno)的简化版
    return 1;
   }
   printf("%p ", fp);//这里的fp表示文件句柄(遥控器) 
   char buffer[1024] = {0};
   //buffer英文是缓冲区的意思:相当于搬运器(作用:提高效率)
   size_t n = fread(buffer, 1, 1023, fp);
   //fread的返回值为实际读到的文件大小
   //1023的目的:最好不要将缓冲区内存占完,以便字符串使用
   printf("n=%d ",n);
   printf("buffer=%s ", buffer); 
   //fclose,文件关闭
   //如果不关闭,则会发生文件描述泄露
   fclose(fp);
 
  2.fwrite,把磁盘中的数据改写

   FILE* fp = fopen("D:/text.txt", "w");//fopen,打开文件
   printf("%s ", strerror(errno));
   if (fp == NULL)
   {
    perror("fopen");//是strerror(errno)的简化版
    return 1;
   }
   printf("%p ", fp);//表示文件句柄(遥控器)
   char buffer[1024] = "haha";
   size_t n = fwrite(buffer, 1, strlen(buffer), fp);
   printf("n=%d ",n);
   fclose(fp);   
 
  3.fssek
    文件的随机读写:根据文件指针的位置和偏移量来定义文件的指针
 
    
     
    
 
 
  4.ftell
 
    
    
    
<3.>文件路径
  1.绝对路径:带根目录开头,路径是区分大小写的
  2.相对路径 :  . 表示当前目录    ..表示上级目录
  fopen中写入绝对路径和相对路径都可以
 
<4.>文件的打开
  在当前系统上,一个程序打开文件的数目上限是 512
  在程序启动前会默认先打开 3 个文件(标准输入,标准输出,标准错误)
  一个文件打开后没有及时关闭,可能会达到打开文件数目上线,导致文件资源泄露问题
 
 
原文地址:https://www.cnblogs.com/cuckoo-/p/10560640.html