디렉토리 스트림의 정의는 무엇인가요?
글쓴이: devanix / 작성시간: 수, 2009/09/02 - 4:45오전
DIR *opendir(const char *dir_name);
보통 책문구중에
*opendir 함수는 디렉토리 객체의 포인터를 리턴한다.
*DIR형은 디렉토리 스트림(directory stream)을 나타낸다.
*디렉토리 스트림은 특정 디렉토리 내의 모든 항목들의 순차적인 열이다.
라는 문구가 있는데요(잘이해가 안됨-_;)
여기서 DIR은 typedef struct __dirstream DIR; 로 정의가 되어있는데 찾아보니
struct __dirstream { int fd; char* data; size_t allocation; size_t size; size_t offset; off_t filepos; pthread _mutex_t lock; }
으로 구성되어 있습니다.
질문1)
그럼 이 구조체를 왜 디렉토리 스트림이라 용어 정의를 내렸으며왜 DIR* dirp; 로 정의했을때 strict DIR* dirp;
dirp = opendir(".")
printf("%d\n", dirp->fd);
closedir(dirp);
처럼 바로 디렉토리 구조체 포인터를 이용하여 바로 접근이 불가능 한것인가요?
(물론 위의 코드에서 dirp->fd로 바로 접근해서 코드를 작성하진 않습니다^^)
질문2)
관련해서 readdir(), closedir(), rewinddir(), seekdir() 등등 디렉토리 객체 포인터를 매개변수로 갖는데요
위의 관련 함수들은 어떤한 정보를 갖고 동작하는지 궁금합니다.
무지한 저를 용서해주시고 차근차근 궁금한점을 짚고 넘어가려니 계속 거미줄처럼 머리만 복잡해지네요
친절한 답변 부탁드립니다.^^
Forums:
도움이 될지 모르겠습니다만..
포럼에 비슷한 글이 있었습니다 .
http://kldp.org/node/29064
beautifool world~!
beautifool world~!
댓글 달기