说明:本文主要是对man 帮助命令的翻译,若有错误,欢迎指正。
在linux学习过程中,如果我们遇到一个陌生函数,都会想赶快查一下,你通常是怎么查询linux系统函数和命令的使用方法呢?google?百度?还是使用man命令?其实对于一个初级程序员,学习使用man命令是很有益的,我们可能看到很多网上的说明都是对man帮助文档的翻译。所以,如果你英文不是很差,就自己来翻译一下你想要查询的信息吧!
今天我们就通过这样的方式学习一下fseek这个函数。
打开linux的控制台,我们输入“man fseek”:会进入帮助文档,里面关于fseek的说明是这样的:
1 | FSEEK(3) Linux Programmer's Manual FSEEK(3) |
让我们一起理解和翻译一下吧:
linux程序员使用手册中,把fgetpos,fseek,fsetpos,ftell,rewind几个函数放在一起介绍的。因为他们都和重新定位流有关。我们只详细了解一下fseek。
概要:
fseek函数在<stdio.h>
头文件中定义。
原型是:int fseek(FILE *stream, long offset, int whence);
说明:
fseek()函数重新定位了指向文件的指示符的位置。通常情况下,当我们打开一个文件时,指示符定位在文件的第一个字节处。
通过fseek函数重新定位指示符时是以字节为单位的。
stream表示已经打开的某个文件描述符,
offset表示偏移量的大小,也就是字节的个数。
whence表示相对位置,取值可以是SEEK_SET, SEEK_CUR, SEEK_END三种。
SEEK_SET(值为0)表示重新定位到文件开始后offset字节位置。
SEEK_CUR(值为1)表示重新定位到当前位置后的offset字节位置。
SEEK_END(值为2)表示重新定位到文件尾后的offset字节位置,此时允许出现负数,表示倒数第offset个字节处。
一次成功的fseek函数调用,会清除文件尾的指示符,并不会对ungetc函数的调用起到任何影响。
返回值
调用成功返回0,不成功返回-1。不成功时,指示符的位置不变。造成不成功的原因可能是offset已经超出了文件大小。或者指向的流是不可搜索的。
测试代码
1 |
|
1 | test.txt的内容: |
1 | 运行结果: |
了解了这些,快自己使用一下fseek吧。