GETDENTS
Section: 리눅스 프로그래머 메뉴얼 (2)
Updated: 1995년 7월 22일
Index
Return to Main Contents
이름
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일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:06:58 GMT, March 25, 2004