美文网首页
fseek和ftell是如何工作的?

fseek和ftell是如何工作的?

作者: 快乐小哥 | 来源:发表于2017-03-08 11:12 被阅读194次

    1.fseek第一个参数是指向一个FILE文件的指针,使用fopen的时候已经打开了该文件
    2.第二个参数 代表的是 偏移量,offset的值,表示从起始点开始移动的距离,而且这个参数 必须是一个long类型的值,正值代表向前移动,负值(后退),0(不动);
    3,第三个参数是模式,SEEK_SET 代表文件开始;SEEK_END 代表文件的结束
    SEEK_CUR 代表当前位置

    #include<stdio.h>
    #include<stdlib.h>
    #define SLEN 50
    int main(void){
            char file[SLEN];
            char ch;
            FILE *fp;
            long count,last;
            gets(file);
            if((fp=fopen(file,"rb"))==NULL){
                    fprintf(stderr,"can't open the %s\n",file);
                    exit(1);
            }
            fseek(fp,0L,SEEK_END);
            last = ftell(fp);//得到fp的长度
            for(count = 1L;count<=last;count++){
                    fseek(fp,-count,SEEK_END);
                    ch = getc(fp);//得到该指针所对应的字符
                    putchar(ch);
            }
            putchar('\n');
            return 0;
    }
    

    hello文件内容:

    aaofjaojdfoajf
    afoajdfoaj
    afaj1
    

    结果

    111@ubuntu:~/Documents/reverse$ gcc reverse.c -o reverse
    111@ubuntu:~/Documents/reverse$ ./reverse
    hello
    1jafa
    jaofdjaofa
    fjaofdjoajfoaa
    111@ubuntu:~/Documents/reverse$ 
    
    

    相关文章

      网友评论

          本文标题:fseek和ftell是如何工作的?

          本文链接:https://www.haomeiwen.com/subject/gghbgttx.html