700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > fseek ftell rewind函数

fseek ftell rewind函数

时间:2019-06-28 04:01:39

相关推荐

fseek ftell rewind函数

#include <stdio.h>

int fseek(FILE *stream, long offset, int whence);

将stream所代表的文件的指针,从whence开始移动offset个字节(offset可以是负数,代表向前移动)。

参数whence有以下3种宏定义:

SEEK_SET:起始位置

SEEK_CUR:当前位置

SEEK_END:文件末尾

linux系统自带的lseek用法与fseek大同小异,只是lseek的返回值是有意义的,代表文件当前指针的位置。

long ftell(FILE *stream);

返回当前文件指针位置。

void rewind(FILE *stream);

将当前文件指针置于文件开头。

代码演示如下:

#include "./common/head.h"int main(int argc, char *argv[]){FILE *fp = fopen(argv[1], "r+"); //可读可写if(!fp){perror("fopen");exit(1);}//替换文件前两个字符为ABfputc('A', fp);fputc('B', fp);rewind(fp); //文件指针回到文件头,相当于fseek(fp, 0, SEEK_SET);fseek(fp, -3, SEEK_END); //文件指针从文件未尾向前移动3位(vim编辑的文件,会自动在末尾加一个换行)//文件末尾的两个字符(不包括换行),被替换成abfputc('a', fp);fputc('b', fp);fseek(fp, 0, SEEK_END); //文件指针移动到文件尾printf("fileSize = %ld\n", ftell(fp)); //打印文件大小fclose(fp);return 0;}

拓展:

向终端输出时,也可以用glibc库的函数进行操作(同理向终端输入也一样),例如:

fputc('a', stdout); //向终端输出一个字符’a'

此外,fprintf函数向文件中输出格式字符串,这一类函数大同小异,都是通过FILE *类型的句柄,对文件进行操作。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。