Rechercher une page de manuel
getdents
Langue: ko
Version: 1995년 7월 22일 (fedora - 25/11/07)
Section: 2 (Appels système)
이름
getdents - 디렉토리 엔트리를 가져온다.사용법
#include <unistd.h> #include <linux/types.h> #include <linux/dirent.h> #include <linux/unistd.h> _syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count); int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
설명
getdents는 fd가 가리키는 디렉토리에서 여러 dirent 구조체을 읽어와 dirp가 가리키는 메모리 공간에 저장한다. count 인자는 메모리 공간의 크기이다.dirent 구조체는 다음과 같다:
-
struct dirent { long d_ino; /* inode 번호 */ off_t d_off; /* 다음 dirent에 대한 옵셋 */ unsigned short d_reclen; /* 이 dirent의 길이 */ char d_name [NAME_MAX+1]; /* (null로 끝나는) 파일 이름 */ }
d_ino는 inode 번호이다. d_off는 현재 디렉토리 시작부터 다음 dirent 시작 까지의 옵셋(offset)이다. d_reclen는 이 dirent의 전체 크기이다. d_name는 null로 끝나는 파일 이름이다.
이 시스템 콜은 readdir(2)를 대체한다.
반환값
성공시, 읽은 바이트의 수가 리턴된다. 디렉토리의 끝에서, 0이 리턴된다. 에러시, -1이 리턴되며, errno는 적당한 값으로 설정된다.에러
- EBADF
- 유효하지 않은 파일 기술자 fd.
- EFAULT
- 인자가 호출한 프로세스의 주소 공간을 벗어난 곳을 가리킨다.
- EINVAL
- 결과 버퍼가 너무 작다.
- ENOENT
- 그런 디렉토리가 없다.
- ENOTDIR
- 파일 기술자가 디렉토리를 참조하고 있지 않다.
호환
SVr4, SVID. SVr4 문서에서는 ENOLINK, EIO 에러 상태가 추가되있다.관련 항목
readdir(2), readdir(3)역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 5월 2일Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre