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
。