fclose() 函数
描述:C 库函数 int fclose(FILE *stream) 关闭流 stream。刷新所有的缓冲区。
声明:int fclose(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了要被关闭的流。
示例:
feof() 函数
描述:C 库函数 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。
声明:int feof(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。
示例:
fflush() 函数
描述:C 库函数 int fflush(FILE *stream) 刷新流 stream 的输出缓冲区。
声明:int fflush(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个缓冲流。
返回值:如果成功,该函数返回零值。如果发生错误,则返回 EOF,且设置错误标识符(即 feof)。
示例:
fseek() 函数
描述:C 库函数 int fseek(FILE *stream, long int offset, int whence) 设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数。
声明:int fseek(FILE *stream, long int offset, int whence)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
offset -- 这是相对 whence 的偏移量,以字节为单位。
whence -- 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
示例:
下面的实例演示了 fseek() 函数的用法。
ftell() 函数
描述:C 库函数 long int ftell(FILE *stream) 返回给定流 stream 的当前文件位置。
声明:long int ftell(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:该函数返回位置标识符的当前值。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值。
示例:
下面的实例演示了 ftell() 函数的用法。
描述:C 库函数 int fclose(FILE *stream) 关闭流 stream。刷新所有的缓冲区。
声明:int fclose(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了要被关闭的流。
示例:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("file.txt", "w");
fprintf(fp, "%s", "这里是 runoob.com");
fclose(fp);
return(0);
}
让我们编译并运行上面的程序,这将创建一个文件 file.txt,然后写入下面的文本行,最后使用 fclose() 函数关闭文件。
feof() 函数
描述:C 库函数 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。
声明:int feof(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。
示例:
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
if(fp == NULL)
{
perror("打开文件时发生错误");
return(-1);
}
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
return(0);
}
fflush() 函数
描述:C 库函数 int fflush(FILE *stream) 刷新流 stream 的输出缓冲区。
声明:int fflush(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个缓冲流。
返回值:如果成功,该函数返回零值。如果发生错误,则返回 EOF,且设置错误标识符(即 feof)。
示例:
#include <stdio.h>
#include <string.h>
int main()
{
char buff[1024];
memset( buff, '\0', sizeof( buff ));
fprintf(stdout, "启用全缓冲\n");
setvbuf(stdout, buff, _IOFBF, 1024);
fprintf(stdout, "这里是 runoob.com\n");
fprintf(stdout, "该输出将保存到 buff\n");
fflush( stdout );
fprintf(stdout, "这将在编程时出现\n");
fprintf(stdout, "最后休眠五秒钟\n");
sleep(5);
return(0);
}
fseek() 函数
描述:C 库函数 int fseek(FILE *stream, long int offset, int whence) 设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数。
声明:int fseek(FILE *stream, long int offset, int whence)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
offset -- 这是相对 whence 的偏移量,以字节为单位。
whence -- 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
- SEEK_SET 文件的开头
- SEEK_CUR 文件指针的当前位置
- SEEK_END 文件的末尾
示例:
下面的实例演示了 fseek() 函数的用法。
#include <stdio.h>
int main ()
{
FILE *fp;
fp = fopen("file.txt","w+");
fputs("This is runoob.com", fp);
fseek( fp, 7, SEEK_SET );
fputs(" C Programming Langauge", fp);
fclose(fp);
return(0);
}
现在让我们使用下面的程序查看上面文件的内容:
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
return(0);
}
ftell() 函数
描述:C 库函数 long int ftell(FILE *stream) 返回给定流 stream 的当前文件位置。
声明:long int ftell(FILE *stream)
参数:stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:该函数返回位置标识符的当前值。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值。
示例:
下面的实例演示了 ftell() 函数的用法。
#include <stdio.h>
int main ()
{
FILE *fp;
int len;
fp = fopen("file.txt", "r");
if( fp == NULL )
{
perror ("打开文件错误");
return(-1);
}
fseek(fp, 0, SEEK_END);
len = ftell(fp);
fclose(fp);
printf("file.txt 的总大小 = %d 字节\n", len);
return(0);
}