| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > 软件开发

Linux常用C函数-文件内容操作篇

时间:2006-11-01 10:20:13  来源:Linux联盟收集  作者:
文件内容操作篇cJdLinux联盟
clearerrcJdLinux联盟
fclosecJdLinux联盟
fdopencJdLinux联盟
feofcJdLinux联盟
fflushcJdLinux联盟
fgetccJdLinux联盟
fgetscJdLinux联盟
filenocJdLinux联盟
fopencJdLinux联盟
fputccJdLinux联盟
fputscJdLinux联盟
freadcJdLinux联盟
freopencJdLinux联盟
fseekcJdLinux联盟
ftellcJdLinux联盟
fwritecJdLinux联盟
getccJdLinux联盟
getcharcJdLinux联盟
getscJdLinux联盟
mktempcJdLinux联盟
putccJdLinux联盟
putcharcJdLinux联盟
rewindcJdLinux联盟
setbufcJdLinux联盟
setbuffercJdLinux联盟
setlinebufcJdLinux联盟
setvbufcJdLinux联盟
ungetccJdLinux联盟
clearerr(清除文件流的错误旗标)
相关函数
feofcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
void clearerr(FILE * stream);cJdLinux联盟
函数说明
clearerr()清除参数stream指定的文件流所使用的错误旗标。cJdLinux联盟
返回值
cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fclose(关闭文件)
相关函数
close,fflush,fopen,setbufcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int fclose(FILE * stream);cJdLinux联盟
函数说明
fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。cJdLinux联盟
返回值
若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。cJdLinux联盟
错误代码
EBADF表示参数stream非已打开的文件。cJdLinux联盟
范例
请参考fopen()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fdopen(将文件描述词转为文件指针)
相关函数
fopen,open,fclosecJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
FILE * fdopen(int fildes,const char * mode);cJdLinux联盟
函数说明
fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。cJdLinux联盟
返回值
转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno中。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * fp =fdopen(0,”w+”);cJdLinux联盟
fprintf(fp,”%s\n”,”hello!”);cJdLinux联盟
fclose(fp);cJdLinux联盟
}cJdLinux联盟
执行
hello!cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
feof(检查文件流是否读到了文件尾)
相关函数
fopen,fgetc,fgets,freadcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int feof(FILE * stream);cJdLinux联盟
函数说明
feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。如果已到文件尾则返回非零值,其他情况返回0。cJdLinux联盟
返回值
返回非零值代表已到达文件尾。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fflush(更新缓冲区)
相关函数
write,fopen,fclose,setbufcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int fflush(FILE* stream);cJdLinux联盟
函数说明
fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。如果参数stream为NULL,fflush()会将所有打开的文件数据更新。cJdLinux联盟
返回值
成功返回0,失败返回EOF,错误代码存于errno中。cJdLinux联盟
错误代码
EBADF 参数stream 指定的文件未被打开,或打开状态为只读。其它错误代码参考write()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fgetc(由文件中读取一个字符)
相关函数
open,fread,fscanf,getccJdLinux联盟
表头文件
include<stdio.h>cJdLinux联盟
定义函数
nt fgetc(FILE * stream);cJdLinux联盟
函数说明
fgetc()从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。cJdLinux联盟
返回值
getc()会返回读取到的字符,若返回EOF则表示到了文件尾。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE *fp;cJdLinux联盟
int c;cJdLinux联盟
fp=fopen(“exist”,”r”);cJdLinux联盟
while((c=fgetc(fp))!=EOF)cJdLinux联盟
printf(“%c”,c);cJdLinux联盟
fclose(fp);cJdLinux联盟
}cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fgets(由文件中读取一字符串)
相关函数
open,fread,fscanf,getccJdLinux联盟
表头文件
include<stdio.h>cJdLinux联盟
定义函数
har * fgets(char * s,int size,FILE * stream);cJdLinux联盟
函数说明
fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。cJdLinux联盟
返回值
gets()若成功则返回s指针,返回NULL则表示有错误发生。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
char s[80];cJdLinux联盟
fputs(fgets(s,80,stdin),stdout);cJdLinux联盟
}cJdLinux联盟
执行
this is a test /*输入*/cJdLinux联盟
this is a test /*输出*/cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fileno(返回文件流所使用的文件描述词)
相关函数
open,fopencJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int fileno(FILE * stream);cJdLinux联盟
函数说明
fileno()用来取得参数stream指定的文件流所使用的文件描述词。cJdLinux联盟
返回值
返回文件描述词。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * fp;cJdLinux联盟
int fd;cJdLinux联盟
fp=fopen(“/etc/passwd”,”r”);cJdLinux联盟
fd=fileno(fp);cJdLinux联盟
printf(“fd=%d\n”,fd);cJdLinux联盟
fclose(fp);cJdLinux联盟
}cJdLinux联盟
执行
fd=3cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fopen(打开文件)
相关函数
open,fclosecJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
FILE * fopen(const char * path,const char * mode);cJdLinux联盟
函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。cJdLinux联盟
mode有下列几种形态字符串:cJdLinux联盟
r 打开只读文件,该文件必须存在。cJdLinux联盟
r+ 打开可读写的文件,该文件必须存在。cJdLinux联盟
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。cJdLinux联盟
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。cJdLinux联盟
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。cJdLinux联盟
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。cJdLinux联盟
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值。cJdLinux联盟
返回值
文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。cJdLinux联盟
附加说明
一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * fp;cJdLinux联盟
fp=fopen(“noexist”,”a+”);cJdLinux联盟
if(fp= =NULL) return;cJdLinux联盟
fclose(fp);cJdLinux联盟
}cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fputc(将一指定字符写入文件流中)
相关函数
fopen,fwrite,fscanf,putccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int fputc(int c,FILE * stream);cJdLinux联盟
函数说明
fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中。cJdLinux联盟
返回值
fputc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * fp;cJdLinux联盟
char a[26]=”abcdefghijklmnopqrstuvwxyz”;cJdLinux联盟
int i;cJdLinux联盟
fp= fopen(“noexist”,”w”);cJdLinux联盟
for(i=0;i<26;i++)cJdLinux联盟
fputc(a[i],fp);cJdLinux联盟
fclose(fp);cJdLinux联盟
}cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fputs(将一指定的字符串写入文件内)
相关函数
fopen,fwrite,fscanf,fputc,putccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int fputs(const char * s,FILE * stream);cJdLinux联盟
函数说明
fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。cJdLinux联盟
返回值
若成功则返回写出的字符个数,返回EOF则表示有错误发生。cJdLinux联盟
范例
请参考fgets()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fread(从文件流读取数据)
相关函数
fopen,fwrite,fseek,fscanfcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);cJdLinux联盟
函数说明
fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。cJdLinux联盟
返回值
返回实际读取到的nmemb数目。cJdLinux联盟
附加说明
cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
#define nmemb 3cJdLinux联盟
struct testcJdLinux联盟
{cJdLinux联盟
char name[20];cJdLinux联盟
int size;cJdLinux联盟
}s[nmemb];cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * stream;cJdLinux联盟
int i;cJdLinux联盟
stream = fopen(“/tmp/fwrite”,”r”);cJdLinux联盟
fread(s,sizeof(struct test),nmemb,stream);cJdLinux联盟
fclose(stream);cJdLinux联盟
for(i=0;i<nmemb;i++)cJdLinux联盟
printf(“name[%d]=%-20s:size[%d]=%d\n”,i,s[i].name,i,s[i].size);cJdLinux联盟
}cJdLinux联盟
执行
name[0]=Linux! size[0]=6cJdLinux联盟
name[1]=FreeBSD! size[1]=8cJdLinux联盟
name[2]=Windows2000 size[2]=11cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
freopen(打开文件)
相关函数
fopen,fclosecJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
FILE * freopen(const char * path,const char * mode,FILE * stream);cJdLinux联盟
函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode请参考fopen()说明。参数stream为已打开的文件指针。Freopen()会将原stream所打开的文件流关闭,然后打开参数path的文件。cJdLinux联盟
返回值
文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * fp;cJdLinux联盟
fp=fopen(“/etc/passwd”,”r”);cJdLinux联盟
fp=freopen(“/etc/group”,”r”,fp);cJdLinux联盟
fclose(fp);cJdLinux联盟
}cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fseek(移动文件流的读写位置)
相关函数
rewind,ftell,fgetpos,fsetpos,lseekcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int fseek(FILE * stream,long offset,int whence);cJdLinux联盟
函数说明
fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。cJdLinux联盟
参数
whence为下列其中一种:cJdLinux联盟
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。cJdLinux联盟
SEEK_END将读写位置指向文件尾后再增加offset个位移量。cJdLinux联盟
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。cJdLinux联盟
下列是较特别的使用方式:cJdLinux联盟
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);cJdLinux联盟
2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);cJdLinux联盟
返回值
当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。cJdLinux联盟
附加说明
fseek()不像lseek()会返回读写位置,因此必须使用ftell()来取得目前读写的位置。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * stream;cJdLinux联盟
long offset;cJdLinux联盟
fpos_t pos;cJdLinux联盟
stream=fopen(“/etc/passwd”,”r”);cJdLinux联盟
fseek(stream,5,SEEK_SET);cJdLinux联盟
printf(“offset=%d\n”,ftell(stream));cJdLinux联盟
rewind(stream);cJdLinux联盟
fgetpos(stream,&pos);cJdLinux联盟
printf(“offset=%d\n”,pos);cJdLinux联盟
pos=10;cJdLinux联盟
fsetpos(stream,&pos);cJdLinux联盟
printf(“offset = %d\n”,ftell(stream));cJdLinux联盟
fclose(stream);cJdLinux联盟
}cJdLinux联盟
执行
offset = 5cJdLinux联盟
offset =0cJdLinux联盟
offset=10cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
ftell(取得文件流的读取位置)
相关函数
fseek,rewind,fgetpos,fsetposcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
long ftell(FILE * stream);cJdLinux联盟
函数说明
ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。cJdLinux联盟
返回值
当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。cJdLinux联盟
错误代码
EBADF 参数stream无效或可移动读写位置的文件流。cJdLinux联盟
范例
参考fseek()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
fwrite(将数据写至文件流)
相关函数
fopen,fread,fseek,fscanfcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);cJdLinux联盟
函数说明
fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。cJdLinux联盟
返回值
返回实际写入的nmemb数目。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
#define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);}cJdLinux联盟
#define nmemb 3cJdLinux联盟
struct testcJdLinux联盟
{cJdLinux联盟
char name[20];cJdLinux联盟
int size;cJdLinux联盟
}s[nmemb];cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * stream;cJdLinux联盟
set_s(0,”Linux!”);cJdLinux联盟
set_s(1,”FreeBSD!”);cJdLinux联盟
set_s(2,”Windows2000.”);cJdLinux联盟
stream=fopen(“/tmp/fwrite”,”w”);cJdLinux联盟
fwrite(s,sizeof(struct test),nmemb,stream);cJdLinux联盟
fclose(stream);cJdLinux联盟
}cJdLinux联盟
执行
参考fread()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
getc(由文件中读取一个字符)
相关函数
read,fopen,fread,fgetccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int getc(FILE * stream);cJdLinux联盟
函数说明
getc()用来从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。虽然getc()与fgetc()作用相同,但getc()为宏定义,非真正的函数调用。cJdLinux联盟
返回值
getc()会返回读取到的字符,若返回EOF则表示到了文件尾。cJdLinux联盟
范例
参考fgetc()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
getchar(由标准输入设备内读进一字符)
相关函数
fopen,fread,fscanf,getccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int getchar(void);cJdLinux联盟
函数说明
getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。cJdLinux联盟
返回值
getchar()会返回读取到的字符,若返回EOF则表示有错误发生。cJdLinux联盟
附加说明
getchar()非真正函数,而是getc(stdin)宏定义。cJdLinux联盟
范例
#include<stdio.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
FILE * fp;cJdLinux联盟
int c,i;cJdLinux联盟
for(i=0li<5;i++)cJdLinux联盟
{cJdLinux联盟
c=getchar();cJdLinux联盟
putchar(c);cJdLinux联盟
}cJdLinux联盟
}cJdLinux联盟
执行
1234 /*输入*/cJdLinux联盟
1234 /*输出*/cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
gets(由标准输入设备内读进一字符串)
相关函数
fopen,fread,fscanf,fgetscJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
char * gets(char *s);cJdLinux联盟
函数说明
gets()用来从标准设备读入字符并存到参数s所指的内存空间,直到出现换行字符或读到文件尾为止,最后加上NULL作为字符串结束。cJdLinux联盟
返回值
gets()若成功则返回s指针,返回NULL则表示有错误发生。cJdLinux联盟
附加说明
由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。cJdLinux联盟
范例
参考fgets()cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
mktemp(产生唯一的临时文件名)
相关函数
tmpfilecJdLinux联盟
表头文件
#include<stdlib.h>cJdLinux联盟
定义函数
char * mktemp(char * template);cJdLinux联盟
函数说明
mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。cJdLinux联盟
返回值
文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。cJdLinux联盟
附加说明
参数template所指的文件名称字符串必须声明为数组,如:cJdLinux联盟
char template[ ]=”template-XXXXXX”;cJdLinux联盟
不可用char * template=”template-XXXXXX”;cJdLinux联盟
范例
#include<stdlib.h>cJdLinux联盟
main()cJdLinux联盟
{cJdLinux联盟
char template[ ]=”template-XXXXXX”;cJdLinux联盟
mktemp(template);cJdLinux联盟
printf(“template=%s\n”,template);cJdLinux联盟
}cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
putc(将一指定字符写入文件中)
相关函数
fopen,fwrite,fscanf,fputccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int putc(int c,FILE * stream);cJdLinux联盟
函数说明
putc()会将参数c转为unsigned char后写入参数stream指定的文件中。虽然putc()与fputc()作用相同,但putc()为宏定义,非真正的函数调用。cJdLinux联盟
返回值
putc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。cJdLinux联盟
范例
参考fputc()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
putchar(将指定的字符写到标准输出设备)
相关函数
fopen,fwrite,fscanf,fputccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int putchar (int c);cJdLinux联盟
函数说明
putchar()用来将参数c字符写到标准输出设备。cJdLinux联盟
返回值
putchar()会返回输出成功的字符,即参数c。若返回EOF则代表输出失败。cJdLinux联盟
附加说明
putchar()非真正函数,而是putc(c,stdout)宏定义。cJdLinux联盟
范例
参考getchar()。cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
rewind(重设文件流的读写位置为文件开头)
相关函数
fseek,ftell,fgetpos,fsetposcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
void rewind(FILE * stream);cJdLinux联盟
函数说明
rewind()用来把文件流的读写位置移至文件开头。参数stream为已打开的文件指针。此函数相当于调用fseek(stream,0,SEEK_SET)。cJdLinux联盟
返回值
cJdLinux联盟
范例
参考fseek()cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
setbuf(设置文件流的缓冲区)
相关函数
setbuffer,setlinebuf,setvbufcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
void setbuf(FILE * stream,char * buf);cJdLinux联盟
函数说明
在打开文件流后,读取内容之前,调用setbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址。如果参数buf为NULL指针,则为无缓冲IO。Setbuf()相当于调用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ) cJdLinux联盟
返回值
cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
setbuffer(设置文件流的缓冲区)
相关函数
setlinebuf,setbuf,setvbufcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
void setbuffer(FILE * stream,char * buf,size_t size);cJdLinux联盟
函数说明
在打开文件流后,读取内容之前,调用setbuffer()可用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小。cJdLinux联盟
返回值
cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
setlinebuf(设置文件流为线性缓冲区)
相关函数
setbuffer,setbuf,setvbufcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
void setlinebuf(FILE * stream);cJdLinux联盟
函数说明
setlinebuf()用来设置文件流以换行为依据的无缓冲IO。相当于调用:setvbuf(stream,(char * )NULL,_IOLBF,0);请参考setvbuf()。cJdLinux联盟
返回值
cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
setvbuf(设置文件流的缓冲区)
相关函数
setbuffer,setlinebuf,setbufcJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int setvbuf(FILE * stream,char * buf,int mode,size_t size);cJdLinux联盟
函数说明
在打开文件流后,读取内容之前,调用setvbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小,参数mode有下列几种cJdLinux联盟
_IONBF 无缓冲IOcJdLinux联盟
_IOLBF 以换行为依据的无缓冲IOcJdLinux联盟
_IOFBF 完全无缓冲IO。如果参数buf为NULL指针,则为无缓冲IO。cJdLinux联盟
返回值
cJdLinux联盟
 
cJdLinux联盟
cJdLinux联盟
cJdLinux联盟
ungetc(将指定字符写回文件流中)
相关函数
fputc,getchar,getccJdLinux联盟
表头文件
#include<stdio.h>cJdLinux联盟
定义函数
int ungetc(int c,FILE * stream);cJdLinux联盟
函数说明
ungetc()将参数c字符写回参数stream所指定的文件流。这个写回的字符会由下一个读取文件流的函数取得。cJdLinux联盟
返回值
成功则返回c 字符,若有错误则返回EOF。cJdLinux联盟
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目更新
栏目热门