Manpages

이 름

readdir − 디 렉 토 리 엔 트 리 를 읽 는 다 .

사 용 법

#include <unistd.h>
#include <linux/dirent.h>
#include <linux/unistd.h>

_syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count);

int readdir(unsigned int fd, struct dirent *dirp, unsigned int count);

설 명

이 것 은 여 러 분 이 흥 미 로 워 할 함 수 가 아 니 다 . C 라 이 브 러 리 인 터 페 이 스 에 구 현 된 POSIX 를 위 한 readdir(3)를 참 조 해 라 . 이 페 이 지 는 이 미 바 뀐 예 전 커 널 시 스 템 콜 인 터 페 이 스 를 위 한 문 서 이 며 이 함 수 는 getdents(2)가 대 신 하 고 있 다 .

readdirfd 에 의 해 포 인 트 된 디 렉 토 리 에 서 dirp에 의 해 포 인 트 된 메 모 리 지 역 에 dirent 구 조 체 를 읽 는 다 . count 인 자 는 무 시 된 다 ;

dirent 구 조 체 에 다 음 과 같 이 선 언 된 다 :

struct dirent
{
long d_ino; /* 아 이 노 드 수 */
off_t d_off; /* dirent 의 오 프 셋 */
unsigned short d_reclen; /* d_name 의 길 이 */
char d_name [NAME_MAX+1]; /* 파 일 이 름 (널 로 종 료 ) */
}

d_ino 는 inode 숫 자 이 다 . d_off 는 디 렉 토 리 의 시 작 에 서 dirent까 지 의 거 리 이 다 . d_reclen 는 널 종 결 자 를 세 지 않 은 d_name의 크 기 이 다 . d_name 는 널 로 끝 난 파 일 이 름 이 다 .

반 환 값

성 공 시 , 1이 리 턴 된 다 . 디 렉 토 리 끝 에 서 0이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 errno 는 적 당 한 값 으 로 설 정 된 다 .

에 러

EBADF

유 효 하 지 않 은 파 일 기 술 자 fd.

EFAULT

인 자 가 호 출 프 로 세 스 의 주 소 공 간 외 를 가 리 키 고 있 다 .

EINVAL

결 과 버 퍼 가 너 무 작 다 .

ENOENT

해 당 디 렉 토 리 가 없 다 .

ENOTDIR

파 일 기 술 자 가 디 렉 토 리 를 가 리 키 지 않 는 다 .

호 환

이 시 스 템 콜 은 리 눅 스 에 의 존 한 다 .

관 련 항 목

getdents(2), readdir(3)

역 자

정 강 훈 <skyeyes [AT] soback.net>, 2000년 8월 7일