fgetpos ()- 获取文件位置

格式

#include <stdio.h>
int fgetpos(FILE *stream, fpos_t *pos);

语言级别

ANSI

线程安全

描述

fgetpos() 函数将与 关联的文件指针的当前位置存储到 pos指向的对象中。 pos 指向的值可在稍后调用 fsetpos() 以重新定位 时使用。

返回值

如果成功, fgetpos() 函数将返回 0 ; 发生错误时,它将返回非零值并将 errno 设置为非零值。

errno 的值可以设置为:
含义
EBADF
文件指针或描述符无效。
Ebadseek
寻道操作的偏移量不正确。
ENODEV
在错误的设备上尝试了操作。
ENOTOPEN
文件未打开。
ERECIO
文件已打开以进行记录 I/O。
ESTDERR
无法打开 stderr
埃斯特丁
无法打开 stdin
ESTDOUT
无法打开 stdout
EIOERROR
发生了不可恢复的I/O错误。
EIORECERR
发生了可恢复的I/O错误。

使用 type=record打开的文件不支持 fgetpos() 函数。

示例

此示例打开文件 myfile 以进行读取,并将当前文件指针位置存储到变量 pos中。
#include <stdio.h>
 
FILE *stream;
 
int main(void)
{
   int retcode;
   fpos_t pos;
 
   stream = fopen("mylib/myfile", "rb");
 
   /* The value returned by fgetpos can be used by fsetpos */
   /* to set the file pointer if 'retcode' is 0            */
 
   if ((retcode = fgetpos(stream, &pos) == 0)
      printf("Current position of file pointer found\n");
   fclose(stream);
}

相关信息