Linux IO 中文件定位和偏移 fseek函数 的语法 和例子
时间: 2024-04-12 09:29:54 浏览: 125
`fseek()`函数是用于在标准C库中进行文件定位的函数。它的语法如下:
```c
int fseek(FILE *stream, long offset, int origin);
```
参数解释:
- `stream`:指向文件的指针,即文件流。
- `offset`:偏移量,表示要移动的字节数。正值表示向文件末尾方向移动,负值表示向文件开头方向移动。
- `origin`:起始位置,可以是以下值之一:
- `SEEK_SET`:从文件开头开始计算偏移量。
- `SEEK_CUR`:从当前位置开始计算偏移量。
- `SEEK_END`:从文件末尾开始计算偏移量。
返回值:
- 如果成功,返回0。
- 如果发生错误,返回非零值。
下面是一个使用`fseek()`函数的例子:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
perror("Failed to open file");
return 1;
}
// 将文件指针定位到文件开头
fseek(fp, 0, SEEK_SET);
// 读取文件中的字符
int ch;
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
fclose(fp);
return 0;
}
```
在上面的例子中,我们首先打开一个名为"example.txt"的文件。然后,使用`fseek()`函数将文件指针定位到文件开头。接下来,我们使用`fgetc()`函数逐个字符地读取文件内容,直到文件结束。最后,关闭文件。
这个例子展示了如何使用`fseek()`函数进行文件定位,并结合`fgetc()`函数读取文件内容。你可以根据需要修改偏移量和起始位置,以便在文件中进行定位操作。
阅读全文