Loose-Info.com
Last Update 2012/07/05
TOP - C言語 - dirent.h - seekdir()

※ この関数のコード例・結果に関してはOS X v10.6でのみ検証しています。
その他の環境下では、実行不能な場合も確認されています。

引数のポインタによって参照されるディレクトリストリームの現在位置を指定位置にセットします。

seekdir(  引数1  ,  引数2  )

引数1 :
DIR *
ディレクトリストリームへのポインタ
引数2 :
long
ディレクトリストリームの指定位置

(例)
#include <stdio.h> #include <sys/stat.h> #include <dirent.h> int main() { FILE *fp; struct dirent *dirst; mkdir("test_dir_01", 0777); fp = fopen("test_dir_01/test_file_01.txt", "w"); fclose(fp); fp = fopen("test_dir_01/test_file_02.txt", "w"); fclose(fp); fp = fopen("test_dir_01/test_file_03.txt", "w"); fclose(fp); DIR *dp = opendir("test_dir_01"); while((dirst = readdir(dp)) != NULL) { printf("ディレクトリ名 : [%s]\n", dirst->d_name); printf("telldir結果 : [%ld]\n", telldir(dp)); } seekdir(dp, 3); dirst = readdir(dp); printf("\nディレクトリ名 : [%s]\n", dirst->d_name); printf("telldir結果 : [%ld]\n", telldir(dp)); closedir(dp); remove("test_dir_01/test_file_01.txt"); remove("test_dir_01/test_file_02.txt"); remove("test_dir_01/test_file_03.txt"); remove("test_dir_01"); return 0; }

実行結果
ディレクトリ名 : [.] telldir結果 : [1] ディレクトリ名 : [..] telldir結果 : [2] ディレクトリ名 : [test_file_01.txt] telldir結果 : [3] ディレクトリ名 : [test_file_02.txt] telldir結果 : [4] ディレクトリ名 : [test_file_03.txt] telldir結果 : [5] ディレクトリ名 : [test_file_02.txt] telldir結果 : [4]