DIR구조체의 사용법..?
글쓴이: sadrove / 작성시간: 토, 2003/10/04 - 5:30오후
아래와 같이 하면요..
for(pFile = readdir(dp); pFile; pFile = readdir(dp)){ printf("%s\n", pFile->d_name);
만일 디렉토리에 aaa파일과 bbb파일이 있을때...
출력이..
Quote:
.
..
aaa
bbb
이라고 나옵니다...
전 이중에서 aaa값만 얻고 싶은데요..
pFile->d_name+1 이라고 하면..
출력이
Quote:
.
aa
bb
라고 나옵니다...즉 각각 앞자리씩 짤리더군요...
dirent 구조체를 보니까
char d_name[NAME_MAX+1]; 이라고 되어 있던데....
어떻게 1차원 배열에 저 값들이 들어가있는데..출력은 저렇게 되는지 이해가 안갑니다...2차원 배열이어야하지 않나요..?...
어렵네요..^^
Forums:
Re: DIR구조체의 사용법..?
char d_name[NAME_MAX+1];
이면 저렇게 나오는건 당연하죠.
readdir ()함수를 호출하면 DIR 변수가 업데이트 됩니다.
aaa 라는 파일이 있으면 처음호출에서 그 파일명이 d_name에 있겠죠.
배열의 처음부터 들어가니 d_name + 1 로 출력하면 두번째 부터 출력하니
aa 만 나오죠.
답을 하고 보니.. 질문의 의도가 이게 아닌거 같다는 느낌이 드는건 왜일까요?
왜 2차원 배열의 얘기가 나왔죠?
위에 for 문 호출에서 readdir() 함수가 2번 호출된건 아시죠?
한번의 호출로 하나의 디렉토리 엔트리 정보를 얻어 옵니다.
엔트리가 없을때 까지 readdir() 을 호출하는 거죠.
screen + vim + ctags 좋아요~
아.. 그렇군요..
for문을 왜 신경 안 썼으까..^^;;
감사합니다...
좋은 밤 되세요..
댓글 달기