• fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux


    程序:

    #include<stdio.h>

    int main(int argc,char *argv[])

    {

    FILE * stream;

    fpos_t pos;


    stream = fopen(“/etc/passwd”,”r”);

    fseek(stream,5,SEEK_SET);

    printf(“offset=%d/n”,ftell(stream));


    rewind(stream);

     /* 取得指针位置并存入&pos所指向的对象 */

    fgetpos(stream,&pos);

    printf(“offset=%d/n”,pos);


    pos = 10;

    fsetpos(stream,&pos);

    printf(“offset = %d/n”,ftell(stream));


    fclose(stream);

    return 0;

    }


    结果:

    offset = 5

    offset = 0

    offset = 10



    fseek移动文件流读写位置

    头文件

    #include<stdio.h>

    定义函数

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

    函数说明

    fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。

    参数 whence为下列其中一种:

    SEEK_SET--文件开头offset位移量 为 新的读写位置。

    SEEK_CUR--目前的读写位置往后增加offset个位移量

    SEEK_END--指向文件尾再增加offset个位移量 为 新的读写位置。


    当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。

    下列是较特别的使用方式:

    1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);

    2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);


    返回值

    当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。

    附加 

    fseek()不像lseek()会返回读写位置,因此必须使用ftell()来取得目前读写的位置。


    ftell取得文件流读取位置) 

    头文件 

    #include<stdio.h>

    定义函数 

    long ftell(FILE * stream);

    函数说明 

    ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。

    返回值 

    当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。

    错误代码 EBADF 参数stream无效或可移动读写位置的文件流。


    rewind重设文件流读写位置文件开头) 

    头文件

    #include<stdio.h>

    定义函数 

    void rewind(FILE * stream);

    函数说明 

    rewind()用来把文件流的读写位置移至文件开头。参数stream为已打开的文件指针。此函数相当于调用fseek(stream,0,SEEK_SET)。

    返回值 

    无返回值 


    fgetpos取得当前文件指针所指位置

    头文件

    #include<stdio.h>

    函数原型

    int fgetpos( FILE *stream, fpos_t *pos );

    函数功能

    取得当前文件的指针所指的位置,并把该指针所指的位置数存放到pos所指的对象中。pos值以内部格式存储,仅由fgetpos和fsetpos使用。其中fsetpos的功能与fgetpos相反,为了详细介绍,将在后节给与说明。

    返回值

    成功返回0,失败返回非0,并设置errno。


    fsetpos(文件指针定位pos指定位置上)

    头文件

    #include<stdio.h>

    函数原型

    int fsetpos(FILE *fp, const fpos_t *pos);

    函数功能

    将文件指针定位在pos指定的位置上。该函数的功能与前面提到的fgetpos相反,是将文件指针fp按照pos指定的位置在文件中定位。pos值以内部格式存储,仅由fgetpos和fsetpos使用。

    返回值

    成功返回0,否则返回非0。

     



  • 相关阅读:
    爆打团队 2016.04.12 站立会议
    爆打团队 2016.04.11 站立会议
    爆打团队 2016.04.10 站立会议
    爆打小组 4.3日站立会议
    随机生成题目的代码分析
    爆打 第二周第二次站立会议(2016.3.29)
    爆打小组,四则运算,算法实现
    add some template for ec-final
    2014_acmicpc_shanghai_google
    matrix_world_final_2013
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3310457.html
Copyright © 2020-2023  润新知