詳解C語言中telldir()函數(shù)和seekdir()函數(shù)的用法
C語言telldir()函數(shù):取得目錄流的讀取位置
頭文件:
#include <dirent.h>
定義函數(shù):
off_t telldir(DIR *dir);
函數(shù)說明:telldir()返回參數(shù)dir 目錄流目前的讀取位置. 此返回值代表距離目錄文件開頭的偏移量返回值返回下個讀取位置, 有錯誤發(fā)生時返回-1.
錯誤代碼: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 :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()函數(shù):設(shè)置下回讀取目錄的位置
頭文件:
#include <dirent.h>
定義函數(shù):
void seekdir(DIR * dir, off_t offset);
函數(shù)說明:seekdir()用來設(shè)置參數(shù)dir 目錄流目前的讀取位置, 在調(diào)用readdir()時便從此新位置開始讀取. 參數(shù)offset 代表距離目錄文件開頭的偏移量。
錯誤代碼: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 :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
相關(guān)文章
opencv3/C++ 將圖片轉(zhuǎn)換為視頻的實例
今天小編就為大家分享一篇opencv3/C++ 將圖片轉(zhuǎn)換為視頻的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

