이 름
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)가 대 신 하 고 있 다 .
readdir 는 fd 에 의 해 포 인 트 된 디 렉 토 리 에 서 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
파 일 기 술 자 가 디 렉 토 리 를 가 리 키 지 않 는 다 .
호 환
이 시 스 템 콜 은 리 눅 스 에 의 존 한 다 .
관 련 항 목
역 자
정 강 훈 <skyeyes [AT] soback.net>, 2000년 8월 7일