clearerr(清除文件流的错误旗标)
相关函数 feof
表头文件 #include<stdio.h>
定义函数 void clearerr(FILE * stream);
函数说明 clearerr()清除参数 stream 指定的文件流所使用的错误旗标。
fdopen(将文件描述词转为文件指针)
相关函数 fopen,open,fclose
表头文件 #include<stdio.h>
定义函数 FILE * fdopen(int fildes,const char * mode);
函数说明 fdopen()会将参数 fildes 的文件描述词,转换为对应的文件指针后返回。参数 mode
字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于 mode
字符串格式请参考 fopen()。
返回值 转换成功时返回指向该流的文件指针。失败则返回 NULL,并把错误代码存在 errno
中。
#include<stdio.h>
main()
{
FILE * fp =fdopen(0,”w+”);
fprintf(fp,”%s\n”,”hello!”);
fclose(fp);
}
fileno(返回文件流所使用的文件描述词)
相关函数 open,fopen
表头文件 #include<stdio.h>
定义函数 int fileno(FILE * stream);
函数说明 fileno()用来取得参数 stream 指定的文件流所使用的文件描述词。
返回值 返回文件描述词。
范例
#include<stdio.h>
main()
{
FILE * fp;
int fd;
fp=fopen(“/etc/passwd”,”r”);
fd=fileno(fp);
printf(“fd=%d\n”,fd);
fclose(fp);
}
freopen(打开文件)
相关函数 fopen,fclose
表头文件 #include<stdio.h>
定义函数 FILE * freopen(const char * path,const char * mode,FILE * stream);
函数说明 参数 path 字符串包含欲打开的文件路径及文件名,参数 mode 请参考 fopen()说
明。参数 stream 为已打开的文件指针。Freopen()会将原 stream 所打开的文件流关闭,然后
打开参数 path 的文件。
返回值 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,
并把错误代码存在 errno 中。
范例
#include<stdio.h>
main()
{
FILE * fp;
fp=fopen(“/etc/passwd”,”r”);
fp=freopen(“/etc/group”,”r”,fp);
fclose(fp);
}
mktemp(产生唯一的临时文件名)
相关函数 tmpfile
表头文件 #include<stdlib.h>
定义函数 char * mktemp(char * template);
函数说明 mktemp()用来产生唯一的临时文件名。参数 template 所指的文件名称字符串中最
后六个字符必须是 XXXXXX。产生后的文件名会借字符串指针返回。
返回值 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,
并把错误代码存在 errno 中。
附加说明 参数 template 所指的文件名称字符串必须声明为数组,如:
char template[ ]=”template-XXXXXX”;
不可用 char * template=”template-XXXXXX”;
范例
#include<stdlib.h>
main()
{
char template[ ]=”template-XXXXXX”;
mktemp(template);
printf(“template=%s\n”,template);
}
setbuf(设置文件流的缓冲区)
相关函数 setbuffer,setlinebuf,setvbuf
表头文件 #include<stdio.h>
定义函数 void setbuf(FILE * stream,char * buf);
函数说明 在打开文件流后,读取内容之前,调用 setbuf()可以用来设置文件流的缓冲区。参
数 stream 为指定的文件流,参数 buf 指向自定的缓冲区起始地址。如果参数 buf 为 NULL 指
针,则为无缓冲 IO。Setbuf()相当于调用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)
返回值
setbuffer(设置文件流的缓冲区)
相关函数 setlinebuf,setbuf,setvbuf
表头文件 #include<stdio.h>
定义函数 void setbuffer(FILE * stream,char * buf,size_t size);
函数说明 在打开文件流后,读取内容之前,调用 setbuffer()可用来设置文件流的缓冲区。参
数 stream 为指定的文件流,参数 buf 指向自定的缓冲区起始地址,参数 size 为缓冲区大小。
返回值
setlinebuf(设置文件流为线性缓冲区)
相关函数 setbuffer,setbuf,setvbuf
表头文件 #include<stdio.h>
定义函数 void setlinebuf(FILE * stream);
函数说明 setlinebuf() 用 来 设 置 文 件 流 以 换 行 为 依 据 的 无 缓 冲 IO 。 相 当 于 调
用:setvbuf(stream,(char * )NULL,_IOLBF,0);请参考 setvbuf()。
返回值
setvbuf(设置文件流的缓冲区)
相关函数 setbuffer,setlinebuf,setbuf
表头文件 #include<stdio.h>
定义函数 int setvbuf(FILE * stream,char * buf,int mode,size_t size);
函数说明 在打开文件流后,读取内容之前,调用 setvbuf()可以用来设置文件流的缓冲区。
参数 stream 为指定的文件流,参数 buf 指向自定的缓冲区起始地址,参数 size 为缓冲区大
小,参数 mode 有下列几种
_IONBF 无缓冲 IO
_IOLBF 以换行为依据的无缓冲 IO
_IOFBF 完全无缓冲 IO。如果参数 buf 为 NULL 指针,则为无缓冲 IO。
返回值
ungetc(将指定字符写回文件流中)
相关函数 fputc,getchar,getc
表头文件 #include<stdio.h>
定义函数 int ungetc(int c,FILE * stream);
函数说明 ungetc()将参数 c 字符写回参数 stream 所指定的文件流。这个写回的字符会由下
一个读取文件流的函数取得。
返回值 成功则返回 c 字符,若有错误则返回 EOF。
本文介绍了标准C库中关于文件流操作的重要函数,包括错误标志清除、文件描述符转换、文件描述符获取、文件重新打开、临时文件名生成及缓冲区设置等。通过这些函数,程序员能够更高效地进行文件输入输出管理。

被折叠的 条评论
为什么被折叠?



