반응형
#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 : 오픈되어 있는 화일에 대한 정보를 조사한다.
헤더 화일
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 : 오픈되어 있는 화일에 대한 정보를 조사한다.
반응형
'공부 > 컴퓨터' 카테고리의 다른 글
SQLite 아키텍쳐 문서 번역본. ( 번역기 수준임 -_- ) (0) | 2004.01.07 |
---|---|
오른쪽 정렬 되게 메뉴 넣기 (0) | 2004.01.07 |
배열의 동적 할당사용시 주의점. (0) | 2004.01.05 |
C 언어에서 동적 메모리 할당과 초기화에 따른 시간 차이 (0) | 2004.01.04 |
시간 관련 함수. (0) | 2004.01.04 |