|
함수 원형 struct dirent * readdir(DIR * dirp);
디렉토리 포인터를 인자로 받고, 디렉토리의 정보를 읽어와 dirent라는 구조체에 값을 저장 후,
dirent 구조체 포인터를 반환한다.
struct dirent를 살펴보자.
struct dirent { ino_t d_ino; /* inode number */ off_t d_off; /* offset to the next dirent */ unsigned short d_reclen; /* length of this record */ unsigned char d_type; /* type of file; not supported by all file system types */ char d_name[256]; /* filename */ }; |
Return value로,
-디렉토리 읽기 성공시, dirent 구조체의 포인터를 반환한다. (따로 free해줄 필요가 없다)
-디렉토리의 끝에 도달하거나 Error시에 NULL을 반환한다. (Error시에 해당 Error을 errno에 값이 저장된다)
사용 예를 보도록 하자.
readdir 함수는 읽기가 성공시 dirent라는 구조체의 포인터를 반환한다.
이 함수는 호출할 때마다 알아서 입력된 path에 정보들을 읽어온다.
따라서 입력 path의 끝에 도달하면 NULL을 반환하기 때문에, 위처럼 while 반복문에 조건문으로 사용된다.
사용 시 위의 예처럼 struct dirent * 변수를 선언해 주어야 하며,
dirent.h 헤더파일을 include 해주어야 한다.
아래 간단한 실행 예를 보자.
이처럼 파일의 끝에 도달할 때까지 입력 path의 정보를 읽어오는 것을 볼 수 있다.
$man readdir 입력 시 더 자세한 정보를 볼 수 있다.
'IT > C 언어' 카테고리의 다른 글
IPC, 공유메모리 생성 함수 shmget() (0) | 2013.06.02 |
---|---|
IPC, 메세지 큐 생성 msgget() 함수 (0) | 2013.05.19 |
C언어 - 파일 정보 struct stat, 구조체 (2) | 2013.05.05 |
C언어 - 파일 정보 읽기 함수 stat() ,lstat() ,fstat(); (0) | 2013.05.05 |
C언어 - 디렉토리 오픈 함수 opendir(); (0) | 2013.04.27 |