[완료]stat함수 질문입니다

svsummon의 이미지

안녕하세요 전에 도움을 받아서 stat 함수를 사용하다가 질문이 생겨서 물어 봅니다..

IFDIR 을 통해서 폴더와 파일의 여부를 확인하려는 데요

제가 쓰려는 것과는 달리 0과 1로는 리턴이 안되고

대상의 권한 값과 저는 알아볼수 업는 코드로 리턴이 되더라구요..

저는 0이나 -1로 리턴될줄 알고 그걸로 판별값을 줘서 여부를 판단하려는데 1차로 실패하고

강제로 권한값을 if로 비교해서 판단 하려고 했는데 이도 실패..

제가 한것이 뭐가 문제인지 모르겠습니다 ㅠㅠ

http://cfile223.uf.daum.net/image/196FBB1F4AB5C8217217DE

http://cfile230.uf.daum.net/image/116FBB1F4AB5C822737E1E

* 혹시 사진이 안나오면 댓글 달아 주세요..

img src로 태그 할랬는데 태그가 안되네요 ㅠㅠ

불편하시더라도 사진 보고 답변 주시면 감사 하겠습니다 ㅠㅠ

clique의 이미지

http://lxr.linux.no/#linux+v2.6.31/include/linux/stat.h

st_mode 에서 사용되는 값은 bitwise operation에 대응되도록 설정되어 있습니다.

즉 OR/AND operation이 각 옵션마다 독립적으로 설정되게 끔 되어있죠.

#define S_IFDIR 0040000

알아볼 수 없는 코드는, 8진수 040000 입니다. (10진수 16384)

만일 st_mode 값을 1/0 로 알고 싶으시면, 바로 아래에 정의되어 있는

#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)

매크로를 사용하시면 될겁니다.