그 시점에서 콜백 함수 내부에서 전체 배열을 인쇄 할 수 있습니다 — 성공을 즐기거나 for 루프로 목록을 반복하고 각 항목으로 무언가를 할 수 있습니다. 예를 들어 각 항목을 인쇄할 수 있습니다. 이 코드는 디렉터리 항목을 읽기 위해 while 루프가 삽입된 이전 예제와 동일합니다. readdir()에서 반환된 값이 NULL이 아닌 한 루프가 회전합니다. 발견된 각 항목에 대해 int 변수 파일은 순차 번호(이 코드의 일부이며 파일 시스템의 일부가 아님)를 추적하고 entry->d_name은 그 이름을 인쇄합니다. 우리는 명시적으로 반환 값이 동일 여부를 테스트하고 있습니다 (동일하고 같은 유형과 같은 -에 대한 자세한 내용은 비교 연산자 참조) FALSE 이후, 그 이름이 FALSE로 평가되는 모든 디렉토리 항목은 루프를 중지합니다 (예 : «0»라는 디렉토리) ). 그것은 약간 이상한 구문을 가지고 있지만, 오픈 함수와 유사하지만 두 개의 매개 변수만 허용합니다 : 첫 번째 구문은 디렉토리 핸들을 보유할 아직 정의되지 않은 변수이며 두 번째는 디렉터리에 대한 상대적 또는 절대 경로입니다. 디렉터리 핸들은 파일을 열 때 보았던 파일 핸들과 매우 유사합니다. 고대에 사람들은 이 디렉토리 핸들을 잡기 위해 베어워드를 사용했습니다.

컨텍스트. 예를 들어 배열에 할당합니다. 이 경우 for 루프를 사용하여 반복할 수 있습니다. 두 번째 예제에서는 디렉터리의 모든 콘텐츠가 한 문에서 메모리에서 읽혀더 많은 메모리를 사용한다는 것입니다. 반환 된 목록에는 디렉터리에있는 것들의 이름만 포함되어 있기 때문에 파일의 내용을 읽을 때보다 훨씬 적은 문제입니다. 디렉터리 를 열고 닫는 것은 지루하지만 새로운 개념을 제시 할 때 코드를 빌드하는 것을 좋아합니다. 프로그램을 확장하고 유용하게 만들기 위해 readdir() 기능이 추가됩니다. dirent.h 헤더 파일에서도 프로토타입을 만드는 방법은 다음과 같습니다: 디렉토리에 액세스하려면 opendir() 함수를 사용합니다. dirent.h 헤더 파일에서 프로토타입으로 변환됩니다: 다음 샘플 프로그램은 명령줄에 제공된 각 인수에 대해 현재 디렉터리를 검색합니다. 디렉터리는 파일과 매우 유사하지만 특수 한 구조를 가지고 있으며 파일과 마찬가지로 «쓰기»만 할 수는 없습니다. 그럼에도 불구하고 «디렉토리»라는이 특별한 내용의 내용을 읽기 전에 운영 체제에 «열기»를 요청해야합니다. 기본적으로 어떻게 든 특정 디렉토리에 우리의 프로세스를 연결합니다.

펄은 이에 대한 오픈디어 함수를 제공합니다. 은 정의 된 연산자입니다. 정의된 경우 왼쪽에 있는 값을 반환합니다. 그렇지 않으면 오른쪽을 반환합니다. readdir() 함수는 실제 읽기 작업당 여러 디렉터리 항목을 버퍼링할 수 있습니다. readdir()는 디렉터리를 실제로 읽을 때마다 디렉터리의 st_atime 필드를 업데이트하기 위해 표시해야 합니다.