본문 바로가기

공부/컴퓨터

파일 정보 관련 함수.

반응형
#1. 화일 정보 얻기 ( 화일 크기 및 정보 )

헤더 화일
sys/stat.h

원형
int stat(char *path, struct stat *statbuf);

path : 화일위치
statbuf : 결과를 받을 구조체

struct stat {
    short st_dev;      // 파일값을 담고 있는 드라이브 번호, 장치 화일일 경우 파일 핸들
    short st_ino;       //
    short st_mode;   // 파일의 모드에 대한 비트 필드값
    short st_nlink;     // 항상 1로 고정.
    int st_uid;          
    int st_gid;
    short st_rdev;      // st_dev과 같다.
    long st_size;       // 화일 사이즈
    long st_atime;     // 파일이 최근 수정된 시간.
    long st_mtime;    // 위와 같다.
    long st_ctime;     // 위와 같다.
};

st_mode에 대한 비트 조합
S_IFDIR    패스가 디렉토리.
S_IFREG    보통화일에 대한 핸들
S_IWRITE   쓰기 허용
S_IREAD    읽기허용


리턴값
에러가 없을경우 0을 리턴, 에러 발생시 -1 리턴
errno는 ENOENT(파일이나 패스가 없음) 으로 세트 됨.

st_mode를 사용한 예.

stat(d_filename,&d_fileinfo);
if (d_fileinfo.st_mode & S_IFDIR) {
        MessageBox(hWnd,"디렉토리는 편집할수 없습니다.","에러",0);
        return 0;
}


참고 함수
fstat : 오픈되어 있는 화일에 대한 정보를 조사한다.
반응형