文件操作函数,文件操作函数有哪些

  文件操作函数,文件操作函数有哪些

  1.fread和fwrite:

  Fwrite和fread是基于记录的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。

  声明:

  # include stdio . h size _ t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE * stream);

  参数解释:

  指出记录的长度。nmemb指出要读取或写入多少条记录。这些记录连续存储在ptr指示的内存空间中,总共占size * nmemb字节。fread从文件流中读出size * nmemb字节并保存在ptr中,而fwrite将ptr中的size * nmemb字节写入文件流中。

  返回值:

  读取或写入的记录数,成功时返回的记录数等于nmemb,出错或读取文件结尾时返回的记录数小于nmemb,也可能返回0。

  函数:FREAD()-从fp所指向的文件的当前位置,一次读入size个字节,重复count次,将读取的数据从buffer开始存入内存;Buffer是读入数据存储的起始地址(即存储的位置)。FWRITE()-从buffer开始,一次输出size个字节,重复计数次,将输出数据存储在fp指向的文件中。Buffer是要在内存中输出的数据的起始地址(即从哪里开始输出)。

  Fread和fwrite用于读写记录,其中记录指的是固定长度字节的字符串,如int、structure或固定长度数组。

  Nmemb是请求读取或写入的记录数,fread和fwrite返回的记录数可能小于nmemb指定的记录数。例如,当前读写位置距离文件末尾只有一条记录的长度。调用fread时,指定nmemb为2,返回值为1。如果当前读写位置已经在文件末尾,或者读取文件时出现错误,fread返回0。如果写文件时出现错误,fwrite的返回值小于nmemb指定的值。以下示例由两个程序组成,一个程序将结构保存到文件中,另一个程序从文件中读取结构。

  2.fseek用法int FSeek (file * stream,long offset,int from where);

  参数:第一个参数文件指向第二个参数的偏移量,第三个参数移动的地方,分别使用三个宏。

  SEEK_SET是0文件start SEEK_CUR是1文件当前位置SEEK_END是2文件结束号不推荐,最好用宏。

  简而言之:fseek(fp,100L,SEEK _ SET);将fp指针移动到距离文件开头100字节的位置;fseek(fp,100L,SEEK _ CUR);将fp指针从文件的当前位置移动到100字节;fseek(fp,100L,SEEK _ END);将fp指针返回到距离文件末尾100字节处。该函数通常与ftell函数结合使用,计算流的长度:fseek(fp,0,SEEK _ END);长文件长度=ftell(FP);

  3.fopen、fclose

  Fopen:函数打开文件

  Fclose:函数关闭文件

  头文件:# includesdio.h

  定义:file * fopen (constchar * path,const char * mode);

  功能参数描述:

  Path:该字符串包含要打开的文件的路径和名称。Mode:字符串表示流形式,取值如下: r 打开只读文件,必须存在。r 打开一个读写文件,该文件必须存在。 w 打开只写文件,如果文件存在,文件长度将被清除为0,即文件内容将消失。如果该文件不存在,请创建该文件。 w 打开可读可写文件,如果文件存在,文件长度将被清零,即文件内容将消失。如果该文件不存在,请创建该文件。以另外的方式打开只写文件。如果该文件不存在,将会创建它。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容。以另外的方式打开一个可读写的文件。如果该文件不存在,将会创建它。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容。

  以上形态字符串都可以加一个B字符,比如rb,w b或者AB+,用来告诉函数库打开的文件是二进制文件,不是纯文本文件。但是在POSIX系统中,包括Linux,这个字符会被忽略。fopen()创建的新文件将拥有权限s _ IR usr s _ iwusr s _ IR grp s _ iroth s _ iwoth(0666),这个文件权限也将引用umask值。

  返回值:

  文件成功打开后,将返回指向流的文件指针。如果文件无法打开,它将返回NULL,错误代码存储在errno中。附加说明

  一般来说,打开一个文件后,会执行一些文件读取或写入动作。如果文件打开失败,后续的读写动作将无法顺利进行,请做出错误判断,并在fopen()后处理。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: