SCANDIR

Section: 리눅스 프로그래머 매뉴얼 (3)
Updated: 1996년 4월 11일
Index
Return to Main Contents
 

이름

scandir, alphasort - 디렉토리에서 해당 항목을 조사한다  

사용법

#include <dirent.h>

int scandir(const char *dir, struct dirent ***namelist,
int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **));
int alphasort(const struct dirent **a, const struct dirent **b);
 

설명

scandir() 함수는 각 디렉토리 항목에 대해 select()를 호출하면서 dir 디렉토리를 조사한다. select()에서 0이 아닌 값을 반환한 항목들은 malloc()을 통해 할당된 문자열에 저장되고, 비교 함수 compar()를 사용한 qsort()에 의해 정렬되고, malloc()를 통해 할당된 namelist 배열에 모아진다. select가 NULL이면 모든 항목이 선택된다.

alphasort() 함수는 디렉토리 항목들을 알파벳 순서로 정렬하기 위해 scandir() 함수의 비교 함수로 사용될 수 있다. 그 함수의 인자는 비교할 두 개의 디렉토리 항목 ab이다.  

반환값

scandir() 함수는 선택된 디렉토리 항목의 개수를 또는 에러가 발생하면 -1을 반환한다.

alphasort() 함수는 첫번째 인자가 두번째 인자보다 작거나, 같거나, 크거나에 따라 각각 0 보다 작거나, 같거나, 큰 정수를 반환한다.  

에러

ENOMEM
수행을 하기 위한 메모리 부족하다.
 

호환

BSD 4.3  

예제

/* 현재 디렉토리의 파일을 역순으로 출력한다 */
#include <dirent.h>
main(){
    struct dirent **namelist;
    int n;

    n = scandir(".", &namelist, 0, alphasort);
    if (n < 0)
        perror("scandir");
    else {
        while(n--) {
            printf("%s\n", namelist[n]->d_name);
            free(namelist[n]);
        }
        free(namelist);
    }
}
 

관련 항목

opendir(3), readdir(3), closedir(3), rewinddir(3), telldir(3), seekdir(3).  

역자

임종균 <hermes44@secsm.org>, 2001년 6월 28일


 

Index

이름
사용법
설명
반환값
에러
호환
예제
관련 항목
역자

This document was created by man2html, using the manual pages.
Time: 08:07:01 GMT, March 25, 2004