c语言file函数,c语言的file

  c语言file函数,c语言的file

  void clearerr(FILE * stream);相关函数feof function解释clearerr()清除参数流指定的文件流使用的错误标志。

  int fclose(FILE * stream);相关函数close,fflush,fopen,setbuf函数说明了使用fc close()关闭fopen()之前打开的文件。该操作将把缓冲区中的数据写入文件,并释放系统提供的文件资源。如果文件关闭操作成功,将返回0;如果有错误,它将返回EOF并将错误代码保存到errno。错误EBADF表示参数流不是打开的文件。有关示例,请参见fopen()。

  FILE * fdopen(int fildes,const char * mode);相关函数fopen,open,fclose函数说明fdopen()会将参数fildes的文件描述符转换成对应的文件指针并返回。模式字符串表示文件指针的流动模式,该模式必须与原始文件描述符的读写模式相同。模式字符串格式请参考fopen()。当返回值被成功转换时,返回指向流的文件指针。失败返回NULL,错误代码存储在errno中。

  int feof(FILE * stream);相关函数fopen,fgetc,fgets,fread函数说明feof()用于检测一个文件是否读完,尾数流是fopen()返回的文件指针。如果它已经到达文件的末尾,它将返回一个非零值;否则,它将返回0。返回一个非零值,指示已到达文件末尾。

  int fflush(FILE * stream);相关函数write,fopen,fclose,setbuf函数说明fflush()会强制将缓冲区中的数据写回参数流指定的文件中。如果参数流为空,fflush()将更新所有打开的文件数据。返回值成功返回0,EOF失败,错误代码存储在errno中。错误:EBADF参数流指定的文件未打开,或者打开状态为只读。其他错误代码参考write()。

  int fgetc(FILE * stream);相关函数open,fread,fscanf,getc函数说明fgetc()从参数流指向的文件中读取一个字符。如果文件末尾没有数据,将返回EOF。返回值getc()将返回读取的字符,如果返回EOF,则意味着到达了文件的末尾。

  char * fgets(char * s,int size,FILE * stream);(从文件中读取一个字符串)相关函数open,fread,fscanf,getc头文件includesdio.h函数描述fgets()用于从参数stream指示的文件中读取字符,并存储在参数s指示的内存空间中,直到出现一个换行符,读取到文件的结尾或者读取到size-1字符,最后添加NULL作为字符串的结尾。如果返回值gets()成功,将返回S指针;如果它返回NULL,则表明有错误。

  int fileno(FILE * stream);(返回文件流使用的文件描述符)相关函数open,fopen函数解释fileno()用于获取参数stream指定的文件流使用的文件描述符。返回返回值文件描述符。

  FILE * fpint fdfp=fopen("/etc/passwd "," r ");FD=fileno(FP);printf("fd=%d\n ",FD);fclose(FP);执行fd=3

  FILE * fopen(const char * path,const char * mode);相关函数(open file)和fclose函数说明参数path字符串包含要打开的文件的路径和文件名,参数mode字符串表示流形式。Mode有以下形态字符串:r打开一个只读文件,必须存在。r打开一个读写文件,这个文件必须存在。打开一个只写文件。如果文件存在,文件长度将被清除为0,即文件内容将消失。如果该文件不存在,请创建该文件。w打开读写文件。如果文件存在,文件长度将被清除为零,即文件内容将消失。如果该文件不存在,请创建该文件。用另一种方式打开只写文件。如果该文件不存在,将会创建它。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容。以另外的方式打开一个可读可写的文件。如果该文件不存在,将会创建它。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容。你可以在上面提到的所有形态字符串中再加一个B字符,比如r B,w b或者AB+。添加B字符是用来告诉函数库打开的文件是二进制文件,而不是纯文本文件。但是在POSIX系统中,包括Linux,这个字符会被忽略。fopen()创建的新文件将拥有权限s _ IR usr s _ iwusr s _ IR grp s _ iroth s _ iwoth(0666),这个文件权限也将引用umask值。成功打开返回值文件后,将返回指向流的文件指针。如果文件无法打开,它将返回NULL,错误代码存储在errno中。注意:一般来说,有些文件在打开后会被读取或写入。如果打开文件失败,后续的读写动作将无法顺利进行,请做出错误判断,并在fopen()后处理。

  int fputc(int c,FILE * stream);(将指定字符写入文件流)相关函数fopen、fwrite、fscanf、putc function表示fputc将参数C转换为无符号char,写入参数流指定的文件。返回值fputc()将返回成功写入的字符,即参数c,如果返回EOF,则写入失败。

  int fputs(const char * s,FILE * stream);(将指定字符串写入文件)相关函数fopen,fwrite,fscanf,fputc,putc函数说明使用fputs()将参数s指向的字符串写入参数stream指向的文件。如果返回值成功,则返回写入的字符数;如果返回EOF,则表示发生了错误。请参考fgets()获取示例。

  size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);相关函数fopen,fwrite,fseek,fscanf(从文件流中读取数据)定义函数号描述fread()用于从文件流中读取数据。参数stream是指向打开文件的指针,参数ptr指向要存储的数据空间,要读取的字符数由参数size*nmemb决定。Fread()将返回实际读取的nmembs数。如果该值小于参数NMEMB,则意味着文件的结尾可能已被读取或者发生了错误。在这种情况下,必须使用feof()或ferror()来决定发生什么。返回实际读取的nmemb数。# define nmemb 3 struct test { char name[20];int大小;} s[nmemb];文件*流;int I;stream=fopen("/tmp/fwrite "," r ");fread(s,sizeof(struct test),nmemb,stream);fclose(流);

  for(I=0;i nmembI)printf(" name[% d]=%-20s:size[% d]=% d \ n ",I,s[i]。名字,我,s[i]。尺寸);

  执行名[0]=Linux!size[0]=6 name[1]=FreeBSD!size[1]=8 name[2]=windows 2000 size[2]=11

  FILE * freopen(const char * path,const char * mode,FILE * stream);(打开文件)相关函数fopen,fclose函数说明参数path string包含要打开的文件的路径和文件名,参数方式请参考fopen()说明。参数流是指向打开文件的指针。Freopen()会关闭原流打开的文件流,然后用参数path打开文件。成功打开返回值文件后,将返回指向流的文件指针。如果文件无法打开,它将返回NULL,错误代码存储在errno中。

  int fseek(FILE * stream,long offset,int where);相关函数rewind,ftell,fgetpos,fsetpos,lseek函数说明fseek()用于移动文件流的读写位置。参数stream是打开文件的指针,参数offset是根据参数when移动读写位置的位移次数。参数whence为下列之一:SEEK_SET从文件的开头偏移到新的读写位置。SEEK_CUR从当前读写位置开始增加偏移量。SEEK_END将读写位置指向文件的末尾,然后加上offset。由于力矩值为SEEK_CUR或SEEK_END,参数offset允许负值。下面是一些特殊的使用方法:1)当你想把读写位置移到文件开头的时候:fseek(FILE *stream,0,SEEK _ SET);2)当你想把读写位置移到文件末尾时:fseek(FILE *stream,0,0 seek _ END);返回值调用成功会返回0,如果有错误会返回-1,errno会存储错误代码。说明附加fseek()不像lseek()那样返回读写位置,所以必须使用ftell()来获取当前读写位置。

  文件*流;长偏移;fpos _ t posstream=fopen("/etc/passwd "," r ");fseek(stream,5,SEEK _ SET);printf("offset=%d\n ",ftell(stream));

  倒带(流);fgetpos(流,位置);printf("offset=%d\n ",pos);

  pos=10fsetpos(流,位置);printf("offset=%d\n ",ftell(stream));fclose(流);

  执行偏移量=5偏移量=0偏移量=10

  long ftell(文件*流);(获取文件流的读取位置)相关函数fseek,rewind,fgetpos,fsetpos定义函数函数描述ftell()用于获取文件流的当前读写位置。参数流是指向打开文件的指针。返回值调用成功后,会返回到当前读写位置;如果有错误,将返回-1,errno将存储错误代码。错误EBADF参数流无效或可移动读写位置的文件流。例如,请参见fseek()。

  size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);(将数据写入文件流)相关函数fopen,fread,fseek,fscanf函数描述fwrite()用于将数据写入文件流。参数stream是指向打开文件的指针,参数ptr指向要写入的数据地址,写入的字符总数由参数size*nmemb决定。Fwrite()返回实际写入的nmemb的数量。返回实际写入的nmemb的数量。

  int getc(FILE * stream);(从文件中读取一个字符)相关函数read,fopen,fread,fgetc函数说明使用getc()从参数流指向的文件中读取一个字符。如果文件末尾没有数据,将返回EOF。虽然getc()和fgetc()的功能一样,但是getc()是宏定义,不是真正的函数调用。返回值getc()将返回读取的字符,如果返回EOF,则意味着到达了文件的末尾。请参见fgetc()示例。

  int getchar(void);(从标准输入设备读取一个字符)相关函数fopen,fread,fscanf,getc函数说明使用getchar()从标准输入设备读取一个字符。然后将字符从无符号char转换为int并返回。返回值getchar()将返回读取的字符,如果返回EOF,则表明有错误。说明附带的getchar()不是真正的函数,而是getc(stdin)的宏定义。

  char * gets(char * s);(从标准输入设备中读取一个字符串)相关函数fopen,fread,fscanf,fgets函数说明使用gets()从标准设备中读取字符并存储在参数S指示的内存空间中,直到出现一个换行符或者读取到文件的结尾,最后添加NULL作为字符串的结尾。如果返回值gets()成功,将返回S指针;如果它返回NULL,则表明有错误。注意,由于gets()无法知道字符串s的大小,必须遇到换行符或者文件的结尾才能结束输入,所以很容易造成缓冲区溢出的安全问题。建议使用fgets()代替。示例fgets()

  char * mktemp(char * template);(生成唯一的临时文件名)相关函数tmpfile头文件#include stdlib.h函数说明mktemp()用于生成唯一的临时文件名。模板参数指向的文件名字符串的最后六个字符必须是XXXXXX。生成的文件名将由一个字符串指针返回。成功打开返回值文件后,将返回指向流的文件指针。如果文件无法打开,它将返回NULL,错误代码存储在errno中。

  说明附加参数template引用的文件名字符串必须声明为数组,例如:chart emplate[]=" template-XXXXXX ";无法使用char * template=" template-XXXXXX ";

  int putc(int c,FILE * stream);(将指定的字符写入文件)相关函数fopen,fwrite,fscanf,fputc函数说明putc()会将参数C转换成无符号char,写入参数stream指定的文件。虽然putc()和fputc()的功能一样,但是putc()是宏定义,不是真正的函数调用。返回值putc()将返回成功写入的字符,即参数c,如果返回EOF,则写入失败。fputc()示例。

  int putchar(int c);(将指定字符写入标准输出设备)相关函数fopen,fwrite,fscanf,fputc函数描述putchar()用于将参数C字符写入标准输出设备。返回值putchar()将返回成功的输出字符,即参数c,如果返回EOF,则输出失败。说明附加的putchar()并不是真正的函数,而是putc(c,stdout)的宏定义。getchar()示例。void rewind(文件*流);(将文件流的读写位置重置到文件的开头)相关函数fseek,ftell,fgetpos,fsetpos函数描述rewind()用于将文件流的读写位置移动到文件的开头。参数流是指向打开文件的指针。这个函数相当于调用fseek(stream,0,SEEK_SET)。示例返回值引用fseek()

  void setbuf(FILE * stream,char * buf);(设置文件流的缓冲区)相关函数setbuffer,setlinebuf,setvbuf函数号表示打开文件流之后,读取内容之前,可以通过调用setbuf()来设置文件流的缓冲区。参数stream是指定的文件流,参数buf指向自定义的缓冲区起始地址。如果参数buf为空指针,则为无缓冲IO。Setbuf()相当于调用:setvbuf(stream,buf,buf?_ iofbf: _ ionbf,buffiz)返回值。

  void setbuffer(FILE * stream,char * buf,size _ t size);(设置文件流的缓冲区)相关函数setlinebuf,setbuf,setvbuf函数说明在打开文件流之后,读取内容之前,可以通过调用setbuffer()来设置文件流的缓冲区。参数stream是指定的文件流,参数buf指向自定义的缓冲区起始地址,参数size是缓冲区大小。返回值

  void setlinebuf(FILE * stream);(将文件流设置为线性缓冲区)相关函数set buff,setbuf,setvbuf函数解释了setlinebuf()用于根据行为为无缓冲IO设置文件流。相当于调用:setvbuf (stream,(char *) null,_ iolbf,0);请参考setvbuf()。返回值

  int setvbuf(FILE * stream,char * buf,int mode,size _ t size);(设置文件流的缓冲区)相关函数setbuffer,setlinebuf,setbuf函数说明在打开文件流之后,读取内容之前,可以通过调用setvbuf()来设置文件流的缓冲区。参数stream是指定的文件流,参数buf指向自定义的缓冲区起始地址,参数size是缓冲区大小,参数mode有following _IONBF无缓冲IO _IOLBF。无缓冲IO _IOFBF是基于交换行为的完全无缓冲IO。如果参数buf为空指针,则为无缓冲IO。返回值

  int ungetc(int c,FILE * stream);(将指定字符写回文件流)相关函数fputc,getchar,getc函数描述ungetc()将参数C字符写回参数流指定的文件流。这个写回的字符将由下一个读取文件流的函数获得。如果返回值成功,则返回C字符,如果有错误,则返回EOF。

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

相关文章阅读

  • swf upload,fileupload控件上传文件
  • swf upload,fileupload控件上传文件,文件上传插件SWFUpload的使用指南
  • fileupload控件上传图片,fileupload实现多文件上传
  • fileupload控件上传图片,fileupload实现多文件上传,使用fileupload组件实现文件上传功能
  • filereader blob,js下载文件到本地 blob
  • filereader blob,js下载文件到本地 blob,js利用FileReader读取本地文件或者blob方式
  • fileitem获取文件名,fileitem.write
  • fileitem获取文件名,fileitem.write,浅谈FileItem类的常用方法
  • dockerfile cmd enterpoint,docker run cmd entrypoint的区别
  • dockerfile cmd enterpoint,docker run cmd entrypoint的区别,Dockerfile中ENTRYPOINT 和 CMD的区别说明
  • asp fileupload,
  • asp fileupload,,aspupload 3.0 下载与使用集锦
  • apache任意文件上传,apache服务器上传文件,Apache commons fileupload文件上传实例讲解
  • ,,聊聊MultipartFile与File的一些事儿
  • ,,病毒Autorun.inf、pagefile.pif等的解决办法
  • 留言与评论(共有 条评论)
       
    验证码: