설명

opendir()로 디렉토리를 열었다면, 파일처럼 사용 후에는 closedir()로 닫아야 하겠습니다.

헤더 dirent.h
형태 int closedir( DIR *dir);
인수 DIR *dir opendir()에서 열기한 디렉토리 정보
반환 int 성공:0 실패:1
예제

샘플이 들어 있는 디렉토리에 어떤 파일과 디렉토리가 있는지 검색해 보겠습니다.

예제에서 readdir()은 인수로 받은 디렉토리에 대해, 함수를 호출할 때 마다 디렉토리 안에 있는 파일이나 디렉토리명을 반환합니다. 모든 파일과 디렉토리를 읽어 들이면 NULL을 반환하게 되며, 이름 문자열은 struct dirent에서 d_name에 저장됩니다.

#include <stdio.h>
#include <unistd.h>
#include <dirent.h>

int main()
{
   DIR            *dir_info;
   struct dirent  *dir_entry;

   mkdir( "test_A"     , 0755);           // 실행 파일이 있는 곳에 생성
   mkdir( "test_B"     , 0755);           // 실행 파일이 있는 곳에 생성

   dir_info = opendir( ".");              // 현재 디렉토리를 열기
   if ( NULL != dir_info)
   {
      while( dir_entry   = readdir( dir_info))  // 디렉토리 안에 있는 모든 파일과 디렉토리 출력
      {
         printf( "%sn", dir_entry->d_name);
      }
      closedir( dir_info);
   }   
}
]$ a.out
test.c
..
.
test_B
test_A
a.out
]$