詳解C語(yǔ)言中telldir()函數(shù)和seekdir()函數(shù)的用法
C語(yǔ)言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 :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語(yǔ)言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 :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)文章
C語(yǔ)言判斷一個(gè)數(shù)是否是2的冪次方或4的冪次方
本文中我們來看一下如何用C語(yǔ)言判斷一個(gè)數(shù)是否是2的冪次方或4的冪次方的方法,并且判斷出來是多少次方,需要的朋友可以參考下2016-06-06
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能(1)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
記錄一個(gè)C++在條件查詢時(shí)遇到的問題(推薦)
這篇文章主要介紹了記錄一個(gè)C++在條件查詢時(shí)遇到的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
C語(yǔ)言中scanf函數(shù)與空格回車的用法說明
這篇文章主要介紹了C語(yǔ)言中scanf函數(shù)與空格回車的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Matlab實(shí)現(xiàn)獲取文件夾下所有指定后綴的文件
這篇文章主要為大家詳細(xì)介紹了Matlab如何獲取文件夾下所有指定后綴的文件(包含子文件夾),文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-11-11

