컴퓨터/프로그래밍

C언어 디렉토리 읽기 위치를 처음으로 돌리기 함수 rewinddir()

2020. 3. 15. 10:35

C함수 디렉토리 읽기 위치를 처음으로 돌리기 rewinddir()

opendir() 호출 후에 readdir()을 호출하면, 호출될 때마다 다음 파일 정보를 구하게 됩니다. 다시 처음으로 돌리려면 rewinddir()를 호출합니다.

  • 헤더: dirent.h
  • 형태: void rewinddir( DIR *dir)
  • 인수: DIR *dir opendir()에서 열기한 디렉토리 정보
  • 반환: -

C언어 rewinddir() 함수 예제

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

#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.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( "%s\n", dir_entry->d_name);
      }

      rewinddir( dir_info);              // 디렉토리 읽기 위치를 처음으로 이동

      while( dir_entry   = readdir( dir_info))  // 디렉토리 안에 있는 모든 파일과 디렉토리 출력
      {
         printf( "%s\n", dir_entry->d_name);
      }
      closedir( dir_info);
   }   
}

C언어 rewinddir() 예제 실행 결과

]$ ./a.out
test.c
..
.
test_B
test_A
a.out
test.c
..
.
test_B
test_A
]$