几个不太常用的文件操作函数

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值