首页 > 代码库 > unix文件偏移量函数总结

unix文件偏移量函数总结

上一篇文章给自己总结了一下linux环境下的大部分的I/O函数,还有一类函数就是为当前操作的文件设置文件偏移量。

同样分为两种函数,一种是linux提供的一个系统调用函数lseek();还有一种就是标准C库函数。

先介绍linux下面的的lseek()函数:

  off_t lseek(int fd,off_t offset,int whence);该函数为fd文件设置偏移量,返回值为设置后的偏移量,失败返回-1。 whence的值则分三种:SEEK_SET指定位到文件开始加off_t的位置,SEEK_CUR定位到当前文件偏移量加off_t的位置,SEEK_END则定位到文件末尾加off_t的位置。offset 可正可负。当文件偏移量定位到末尾加上一个正的off_t的位置的时候,则会形成文件空洞。文件中未读写的字节都读为0,至于是否会占用磁盘空间则是要看不同的系统实现。

 

而标C函数库则提供了如下几个函数:

  long ftell(FILE* FP);

  int fseek(FILE* fp,long offset,int whence);

  void rewind(FILE* fp)

unix文件偏移量函数总结