手机
当前位置:查字典教程网 >编程开发 >C语言 >详解C语言中telldir()函数和seekdir()函数的用法
详解C语言中telldir()函数和seekdir()函数的用法
摘要:C语言telldir()函数:取得目录流的读取位置头文件:#include定义函数:off_ttelldir(DIR*dir);函数说明:t...

C语言telldir()函数:取得目录流的读取位置

头文件:

#include <dirent.h>

定义函数:

off_t telldir(DIR *dir);

函数说明:telldir()返回参数dir 目录流目前的读取位置. 此返回值代表距离目录文件开头的偏移量返回值返回下个读取位置, 有错误发生时返回-1.

错误代码:EBADF 参数dir 为无效的目录流。

范例

#include <sys/types.h> #include <dirent.h> #include <unistd.h> main() { DIR *dir; struct dirent *ptr; int offset; dir = opendir("/etc/rc.d"); while((ptr = readdir(dir)) != NULL) { offset = telldir (dir); printf("d_name : %s offset :%dn", ptr->d_name, offset); } closedir(dir); }

执行结果:

d_name : . offset :12 d_name : .. offset :24 d_name : init.d offset 40 d_name : rc0.d offset :56 d_name : rc1.d offset :72 d_name : rc2.d offset :88 d_name : rc3.d offset :104 d_name : rc4.d offset :120 d_name : rc5.d offset :136 d_name : rc6.d offset :152 d_name : rc offset :164 d_name : rc.local offset :180 d_name : rc.sysinit offset :4096

C语言seekdir()函数:设置下回读取目录的位置

头文件:

#include <dirent.h>

定义函数:

void seekdir(DIR * dir, off_t offset);

函数说明:seekdir()用来设置参数dir 目录流目前的读取位置, 在调用readdir()时便从此新位置开始读取. 参数offset 代表距离目录文件开头的偏移量。

错误代码:EBADF 参数dir 为无效的目录流。

范例

#include <sys/types.h> #include <dirent.h> #include <unistd.h> main() { DIR * dir; struct dirent * ptr; int offset, offset_5, i = 0; dir = opendir("/etc/rc.d"); while((ptr = readdir(dir)) != NULL) { offset = telldir(dir); if(++i == 5) offset_5 = offset; printf("d_name : %s offset :%d n", ptr->d_name, offset); } seekdir(dir offset_5); printf("Readdir again!n"); while((ptr = readdir(dir)) != NULL) { offset = telldir(dir); printf("d_name : %s offset :%dn", ptr->d_name, offset); } closedir(dir); }

执行:

d_name : . offset :12 d_name : .. offset :24 d_name : init.d offset 40 d_name : rc0.d offset :56 d_name : rc1.d offset :72 d_name : rc2.d offset :88 d_name : rc3.d offset :104 d_name : rc4.d offset :120 d_name : rc5.d offset :136 d_name : rc6.d offset :152 d_name : rc offset :164 d_name : rc.local offset :180 d_name : rc.sysinit offset :4096 readdir again! d_name : rc2.d offset :88 d_name : rc3.d offset :104 d_name : rc4.d offset :120 d_name : rc5.d offset :136 d_name : rc6.d offset :152 d_name : rc offset :164 d_name : rc.local offset :180 d_name : rc.sysinit offset :4096

【详解C语言中telldir()函数和seekdir()函数的用法】相关文章:

C语言中怎么在main函数开始前执行函数

atoi和itoa函数的实现方法

linux下C语言中的mkdir函数与rmdir函数

浅析C语言中assert的用法

深入解析C++中的构造函数和析构函数

基于C语言fflush()函数的使用详解

C语言中system()函数的用法总结

C++中函数模板的用法详细解析

c语言中 基于随机函数的使用详解

c语言printf函数的使用详解

精品推荐
分类导航