当前位置: C语言 -- 标准库 -- <stdio.h> -- SEEK_CUR SEEK_END SEEK_SET

SEEK_CUR SEEK_END SEEK_SET宏


概要:
#define SEEK_CUR value //value值由具体实现定义。
#define SEEK_END value //value值由具体实现定义。
#define SEEK_SET value //value值由具体实现定义。

描述:
描述
SEEK_CUR 文件当前位置。
SEEK_END 文件末尾位置。
SEEK_SET 文件开头位置。

以上宏是ISO/IEC 9899:2018标准中定义的表示文件位置的宏,这些宏会扩展为不同值的整型常量表达式,适合用作fseek函数的第三个参数。


GCC编译器<stdio.h>头文件中,上述三个宏的定义如下所示:

#define  SEEK_CUR  1

#define  SEEK_END  2

#define  SEEK_SET  0


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
/*宏SEEK_CUR、SEEK_END、SEEK_SET范例*/

#include <stdio.h>
#include <stdlib.h>

/*输出文件内容的函数。*/
void func(FILE *pFile)
{
  int ch;

  while((ch=fgetc(pFile)) != EOF)
        putchar(ch);

  printf("\n");
}

int main(void)
{
    FILE *pFile;

    /*创建文件。*/
    pFile = fopen("gch.bin", "wb+");
    if(!pFile)
    {
        perror("Error");
        exit(EXIT_FAILURE);
    }

    /*写入数据。*/
    fputs("The first wealth is health.", pFile);

    /*设置文件位置指示符,输出文件内容。*/
    fseek(pFile, -7L, SEEK_CUR);
    func(pFile);
    
    fseek(pFile, -10L, SEEK_END);
    func(pFile);

    fseek(pFile, 4L, SEEK_SET);
    func(pFile);
    
    /*关闭文件。*/
    fclose(pFile);

    return 0;
}


输出:

health.

is health.

first wealth is health.


相关内容:
fseek 设置流位置的函数。