반응형
seekdir(3)
#include <dirent.h>
void seekdir(DIR *dirp, long loc);
다음에 읽을 디렉토리 특정 위치로 이동합니다. 디렉토리 정보를 읽다가 현재 위치로 되돌아와서 다시 처리해야 할 경우에 주로 사용하며, 현재 위치는 telldir(3)를 통하여 저장해 두어야 합니다. seekdir(3)은 파일처리에서의 fseek(3)나 lseek(2)와 비슷한 기능입니다.
파라미터
dirp
- opendir(3) 또는 fdopendir(3)을 통하여 생성된 DIR *
loc
- directory에서 다음 정보를 읽을 위치를 지정합니다.
- 반드시 telldir(3)이 return한 값으로 설정해야 합니다.
RETURN
없음
활용 예제
Sample
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <dirent.h>
int main(int argc, char **argv)
{
DIR *dir_ptr = NULL;
struct dirent *file = NULL;
char home[1024];
long location;
strncpy(home, getenv("HOME"), sizeof(home));
/* 목록을 읽을 디렉토리명으로 DIR *를 return 받습니다. */
if((dir_ptr = opendir(home)) == NULL) {
fprintf(stderr, "%s directory 정보를 읽을 수 없습니다.\n", home);
return -1;
}
location = 0L;
/* 디렉토리의 처음부터 파일 또는 디렉토리명을 순서대로 한개씩 읽습니다. */
while((file = readdir(dir_ptr)) != NULL)
{
if(strcmp(file->d_name, "myfile.txt") == 0) {
location = telldir(dir_ptr);
}
printf("%s\n", file->d_name);
}
seekdir(dir_ptr, location);
/* myfile.txt 파일 다음부터 처리를 다시 함... */
//......
/* open된 directory 정보를 close 합니다. */
closedir(dir_ptr);
}
see also :
반응형
'C언어 header > dirent.h' 카테고리의 다른 글
telldir(3) - 디렉토리 정보를 읽는 현재 위치 얻기 (0) | 2019.09.23 |
---|---|
scandir(3) - 디렉토리에 존재하는 파일 및 디렉토리 전체 목록 조회 (0) | 2019.09.23 |
rewinddir(3) - 디렉토리 정보 읽기 위치를 처음으로 이동 (0) | 2019.09.23 |
readdir(3) - 디렉토리 소속의 파일정보를 읽음 (0) | 2019.09.23 |
opendir(3)/fdopendir(3) - 디렉토리의 파일목록 조회 시작 (0) | 2019.09.23 |