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 :%d\n", 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 :%d\n", 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语言中index()函数和rindex()函数的用法,包括了详解C语言中index()函数和rindex()函数的用法的使用技巧和注意事项,需要的朋友参考一下 C语言index()函数:查找字符串并返回首次出现的位置 相关函数:rindex, srechr, strrchr 头文件:#include <string.h> 定义函数: 函数说明:index()用来找出参数s 字符
本文向大家介绍详解C语言中的getgrgid()函数和getgrnam()函数,包括了详解C语言中的getgrgid()函数和getgrnam()函数的使用技巧和注意事项,需要的朋友参考一下 C语言getgrgid()函数:从组文件中取得指定gid的数据 头文件: 定义函数: 函数说明:getgrgid()用来依参数gid 指定的组识别码逐一搜索组文件, 找到时便将该组的数据以group 结构返回
本文向大家介绍详解C语言中的fopen()函数和fdopen()函数,包括了详解C语言中的fopen()函数和fdopen()函数的使用技巧和注意事项,需要的朋友参考一下 C语言fopen()函数:打开一个文件并返回文件指针 头文件: fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: 【参数】path为包含了路径的文件名,mode为文件打开方式。 mode有以下几种方式:
本文向大家介绍C语言中fchdir()函数和rewinddir()函数的使用详解,包括了C语言中fchdir()函数和rewinddir()函数的使用详解的使用技巧和注意事项,需要的朋友参考一下 C语言fchdir()函数:改变当前工作目录 头文件: 定义函数: 函数说明:fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描述词。 返回值:执行成功则返回 0, 失败返回-1, err
本文向大家介绍详解C语言中accept()函数和shutdown()函数的使用,包括了详解C语言中accept()函数和shutdown()函数的使用的使用技巧和注意事项,需要的朋友参考一下 C语言accept()函数:接受socket连线 头文件: 定义函数: 函数说明:accept()用来接受参数s 的socket 连线. 参数s 的socket 必需先经bind()、listen()函数处理
本文向大家介绍C语言putenv()函数和getenv()函数的使用详解,包括了C语言putenv()函数和getenv()函数的使用详解的使用技巧和注意事项,需要的朋友参考一下 C语言putenv()函数:改变或增加环境变量 头文件: 定义函数: 函数说明:putenv()用来改变或增加环境变量的内容. 参数string 的格式为name=value, 如果该环境变量原先存在, 则变量内容会依参