頭檔案
#include<sys/types.h>
#include<dirent.h>
函式原型
long int telldir(DIR *dir);
作用
telldir()函式的返回值記錄著一個目錄流的當前位置。此返回值代表距離目錄檔案開頭的偏移量返回值返回下個讀取位置,有錯誤發生時返回-1。你可以在隨後的seekdir函式調用中利用這個值來重置目錄掃描到當前位置。錯誤代碼 EBADF參數dir為無效的目錄流。
範例
#include<sys/types.h>
#include<dirent.h>
#include<unistd.h>
int 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