fseek函数
概要:
#include <stdio.h> int fseek(FILE *stream, long int offset, int whence);
描述:
该函数为参数stream指向的流设置文件位置指示符。如果发生读写错误,将会设置错误指示符,fseek函数调用失败。
对于二进制流,新位置(从文件开头开始以字符为单位)通过将参数offset加上参数whence指定的位置来获得。如果参数whence为SEEK_SET,指定的位置为文件开头;如果参数whence为SEEK_CUR,指定的位置为当前位置;如果参数whence为SEEK_END,指定的位置为文件末尾。二进制流不需要有意义地支持whence值为SEEK_END的fseek函数调用。
对于文本流,参数offset的值应为0或者早期成功调用ftell函数(流关联的文件相同。)的返回值,并且whence的值应为SEEK_SET。
成功调用fseek函数会消除ungetc函数对流的影响,清除文件末尾指示符,并建立新位置。如果对一个更新流成功调用fseek函数,下一步操作可以是输入操作,也可以是输出操作。
参数:
FILE *stream
指向一个打开的流的指针。
long int offset
偏移值。对于二进制文件,是相对于参数whence的偏移值;对于文本文件,该值应为0或者早期成功调用ftell函数的返回值。
int whence
偏移相对位置。
ISO/IEC 9899:2018标准<stdio.h>头文件定义了三个偏移相对位置,具体如下所示:
宏 | 描述 |
SEEK_CUR | 文件当前位置。 |
SEEK_END | 文件末尾位置。 |
SEEK_SET | 文件开头位置。 |
返回值:
如果调用成功,函数返回0;如果调用失败,函数返回非0值。
范例:
|
|
输出:
world
相关内容:
ftell | 获取流当前位置的函数。 |
rewind | 将流位置设置为文件开头的函数。 |