Linux下fseek()ftell()rewind()lseek()fstat( 的使用方法 fseek rewind

fseek(移动文件流的读写位置)
相关函数 rewind,ftell,fgetpos,fsetpos,lseek
表头文件 #include
定义函数 int fseek(FILE * stream,long offset,int whence);
函数说明fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。
参数 whence为下列其中一种:
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR以目前的读写位置往后增加offset个位移量。
SEEK_END将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,SEEK_END);
返回值 当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。
附加说明 fseek()不像lseek()会返回读写位置,因此必须使用ftell()来取得目前读写的位置。
范例
#include
Linux下fseek()ftell()rewind()lseek()fstat()的使用方法 fseek rewind
int main(int argc,char *argv[])
{
FILE * stream;
long offset;
fpos_t pos;
stream=fopen(“/etc/passwd”,”r”);
fseek(stream,5,SEEK_SET);
printf(“offset=%dn”,ftell(stream));
rewind(stream);
fgetpos(stream,&pos);
printf(“offset=%dn”,pos);
pos=10;
fsetpos(stream,&pos);
printf(“offset = %dn”,ftell(stream));
fclose(stream);
}
执行
offset = 5
offset =0
offset=10

ftell(取得文件流的读取位置)
相关函数 fseek,rewind,fgetpos,fsetpos
表头文件 #include
定义函数 long ftell(FILE * stream);
函数说明 ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。
返回值 当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。
错误代码 EBADF 参数stream无效或可移动读写位置的文件流。
范例 见上



rewind(重设文件流的读写位置为文件开头)
相关函数 fseek,ftell,fgetpos,fsetpos
表头文件 #include
定义函数 void rewind(FILE * stream);
函数说明rewind()用来把文件流的读写位置移至文件开头。参数stream为已打开的文件指针。此函数相当于调用fseek(stream,0,SEEK_SET)。
返回值 无返回值
范例 参考fseek()

lseek(移动文件的读写位置)
相关函数 dup,open,fseek
表头文件 #include #include
定义函数 off_t lseek(int fildes,off_t offset ,int whence);
函数说明每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头,若是以附加的方式打开文件(如O_APPEND),则读写位置会指向文件尾。当read()或write()时,读写位置会随之增加,lseek()便是用来控制该文件的读写位置。参数fildes为已打开的文件描述词,参数offset 为根据参数whence来移动读写位置的位移数。
参数 whence为下列其中一种:
SEEK_SET 参数offset即为新的读写位置。
SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END 将读写位置指向文件尾后再增加offset个位移量。
当whence 值为SEEK_CUR 或SEEK_END时,参数offet允许负值的出现。
下列是教特别的使用方式:
1) 欲将读写位置移到文件开头时:lseek(int fildes,0,SEEK_SET);
2) 欲将读写位置移到文件尾时:lseek(int fildes,0,SEEK_END);
3) 想要取得目前文件位置时:lseek(int fildes,0,SEEK_CUR);
返回值 当调用成功时则返回目前的读写位置,也就是距离文件开头多少个字节。若有错误则返回-1,errno 会存放错误代码。
附加说明 Linux系统不允许lseek()对tty装置作用,此项动作会令lseek()返回ESPIPE。



fstat(由文件描述词取得文件状态)
相关函数 stat,lstat,chmod,chown,readlink,utime

表头文件 #include #include
定义函数 int fstat(int fildes,struct stat *buf);
函数说明 fstat()用来将参数fildes所指的文件状态,复制到参数buf所指的结构中(structstat)。Fstat()与stat()作用完全相同,不同处在于传入的参数为已打开的文件描述词。详细内容请参考stat()。
返回值 执行成功则返回0,失败返回-1,错误代码存于errno。
范例
#include
#include
#include
int main(int argc,char *argv[])
{
struct stat buf;
int fd;
fd = open (“/etc/passwd”,O_RDONLY);
fstat(fd,&buf);
printf(“/etc/passwd file size +%dn “,buf.st_size);
}
执行
/etc/passwd file size = 705

http://hi.baidu.com/hp_roc/item/74905223706a653b94f62b92

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/205743.html

更多阅读

最详细的复印机的使用方法 复印机的使用方法图解

最详细的复印机的使用方法——简介复印机用起来还是要提前知道一些知识的,因为并不是傻瓜式的放上就可以复印的,在使用之前你要详细的了解下这几个步骤方法,用起来才会更方便。最详细的复印机的使用方法——方法/步骤

教你柔肤水的使用方法 柔肤水的使用方法

柔肤水的使用方法:柔肤水给肌肤的贡献是不可忽视的,要保证美白的肌肤,柔肤水的效果也不能忽视,下面为大家介绍柔肤水使用方法:Step1:??用化妆棉蘸取足量的化妆水,由额头向两侧滑动化妆棉。按照眉间到太阳穴的顺序涂抹.Step2:

上古卷轴5之mod管理器NMM的使用方法 上古卷轴5用mod管理器

上古卷轴5之mod管理器NMM的使用方法——简介上古卷轴5是个好游戏。具体怎么好,网上的赞美之词铺天盖地,也用不着我在说什么了。而让上古卷轴获得好评的其中最重要的一点,就是同样铺天盖地的mod。不断涌现的它让众多玩家把老滚5下了又删

httpwatch抓包工具的使用方法 铁夹子夹野兔安装图片

httpwatch抓包工具的使用方法——简介火狐浏览器下有著名的httpfox,而HttpWatch则是IE下强大的网页数据分析工具。这个工具到底有哪些具体功能呢?这个我就不再赘述了,百度百科上列的很全面,但也比较抽象。我只想说我曾经用这个工具去分

色盲检查图第五版 的使用方法 色盲检查 第五版

色盲检查图(第五版)的使用方法——简介色觉检查者应该如何即快速又正确的进行检查工作呢?下面以色盲检查图(第五版)为例介绍色觉检查图的标准使用方法及注意事项。色盲检查图(第五版)的使用方法——工具/原料色盲检查图(第五版)色盲检查图

声明:《Linux下fseek()ftell()rewind()lseek()fstat( 的使用方法 fseek rewind》为网友你给的是温暖分享!如侵犯到您的合法权益请联系我们删除