C語言telldir()函數(shù):取得目錄流的讀取位置
頭文件:
#include <dirent.h>
定義函數(shù):
off_t telldir(DIR *dir);
函數(shù)說明:telldir()返回參數(shù)dir 目錄流目前的讀取位置. 此返回值代表距離目錄文件開頭的偏移量返回值返回下個(gè)讀取位置, 有錯(cuò)誤發(fā)生時(shí)返回-1.
錯(cuò)誤代碼:EBADF 參數(shù)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);}
執(zhí)行結(jié)果:
d_name : . offset :12d_name : .. offset :24d_name : init.d offset 40d_name : rc0.d offset :56d_name : rc1.d offset :72d_name : rc2.d offset :88d_name : rc3.d offset :104d_name : rc4.d offset :120d_name : rc5.d offset :136d_name : rc6.d offset :152d_name : rc offset :164d_name : rc.local offset :180d_name : rc.sysinit offset :4096
C語言seekdir()函數(shù):設(shè)置下回讀取目錄的位置
頭文件:
#include <dirent.h>
定義函數(shù):
void seekdir(DIR * dir, off_t offset);
函數(shù)說明:seekdir()用來設(shè)置參數(shù)dir 目錄流目前的讀取位置, 在調(diào)用readdir()時(shí)便從此新位置開始讀取. 參數(shù)offset 代表距離目錄文件開頭的偏移量。
錯(cuò)誤代碼:EBADF 參數(shù)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);}
執(zhí)行:
d_name : . offset :12d_name : .. offset :24d_name : init.d offset 40d_name : rc0.d offset :56d_name : rc1.d offset :72d_name : rc2.d offset :88d_name : rc3.d offset :104d_name : rc4.d offset :120d_name : rc5.d offset :136d_name : rc6.d offset :152d_name : rc offset :164d_name : rc.local offset :180d_name : rc.sysinit offset :4096 readdir again!d_name : rc2.d offset :88d_name : rc3.d offset :104d_name : rc4.d offset :120d_name : rc5.d offset :136d_name : rc6.d offset :152d_name : rc offset :164d_name : rc.local offset :180d_name : rc.sysinit offset :4096
新聞熱點(diǎn)
疑難解答
圖片精選