GETDENTS(2) | 리눅스 프로그래머 메뉴얼 | GETDENTS(2) |
이름¶
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는 적당한 값으로 설정된다.
에러¶
호환¶
SVr4, SVID. SVr4 문서에서는 ENOLINK, EIO 에러 상태가 추가되있다.
관련 항목¶
역자¶
정강훈 <skyeyes@soback.kornet.net>, 2000년 5월 2일
1995년 7월 22일 | 리눅스 1.3.6 |