详解C语言中telldir()函数和seekdir()函数的用法

来源:本站
导读:目前正在解读《详解C语言中telldir()函数和seekdir()函数的用法》的相关信息,《详解C语言中telldir()函数和seekdir()函数的用法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《详解C语言中telldir()函数和seekdir()函数的用法》的详细说明。
简介:这篇文章主要介绍了详解C语言中telldir()函数和seekdir()函数的用法,是C语言入门学习中的基础知识,需要的朋友可以参考下。

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

头文件:

#include

定义函数:

off_t telldir(DIR *dir);

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

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

范例

#include <sys/types.h>

#include

#include

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

定义函数:

void seekdir(DIR * dir, off_t offset);

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

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

范例

#include <sys/types.h>

#include

#include

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()函数的用法》最后刷新时间 2024-03-14 00:59:41,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《详解C语言中telldir()函数和seekdir()函数的用法》该内容的真实性请自行鉴别。