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)