STATFS

Section: 리눅스 프로그래머 매뉴얼 (2)
Updated: 1997년 8월 21일
Index
Return to Main Contents
 

이름

statfs, fstatfs - 파일 시스템 통계를 가져온다.  

사용법

#include <sys/vfs.h>

int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);  

설명

statfs 는 마운트된 파일시스템에 관한 정보를 반환한다. path 는 마운트된 파일 시스템내 파일의 경로 이름이다. buf 는 다음과 같이 정의된 statfs 구조체에 대한 포인터이다:

struct statfs {
   long    f_type;     /* 파일 시스템 타입(아래에서 보여준다) */
   long    f_bsize;    /* 최적화된 전송 블럭 크기 */
   long    f_blocks;   /* 파일 시스템내 총 데이터 블럭들 */
   long    f_bfree;    /* 파일 시스템내 여유 블럭들 */
   long    f_bavail;   /* 비-슈퍼 유저를 위한 여유 블럭들 */
   long    f_files;    /* 파일 시스템내 총 파일 노드들 */
   long    f_ffree;    /* 파일 시스템내 여유 파일 노드들 */
   fsid_t  f_fsid;     /* 파일 시스템 ID */
   long    f_namelen;  /* 파일 이름의 최대 길이 */
   long    f_spare[6]; /* 나중을 위한 여유분 */
};

파일 시스템 타입들:

linux/affs_fs.h:
   AFFS_SUPER_MAGIC      0xADFF
linux/ext_fs.h:
   EXT_SUPER_MAGIC       0x137D
linux/ext2_fs.h:
   EXT2_OLD_SUPER_MAGIC  0xEF51
   EXT2_SUPER_MAGIC      0xEF53
linux/hpfs_fs.h:
   HPFS_SUPER_MAGIC      0xF995E849
linux/iso_fs.h:
   ISOFS_SUPER_MAGIC     0x9660
linux/minix_fs.h:
   MINIX_SUPER_MAGIC     0x137F /* orig. minix */
   MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */
   MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */
   MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */
linux/msdos_fs.h:
   MSDOS_SUPER_MAGIC     0x4d44
linux/ncp_fs.h:
   NCP_SUPER_MAGIC       0x564c
linux/nfs_fs.h:
   NFS_SUPER_MAGIC       0x6969
linux/proc_fs.h:
   PROC_SUPER_MAGIC      0x9fa0
linux/smb_fs.h:
   SMB_SUPER_MAGIC       0x517B
linux/sysv_fs.h:
   XENIX_SUPER_MAGIC     0x012FF7B4
   SYSV4_SUPER_MAGIC     0x012FF7B5
   SYSV2_SUPER_MAGIC     0x012FF7B6
   COH_SUPER_MAGIC       0x012FF7B7
linux/ufs_fs.h:
   UFS_MAGIC             0x00011954
linux/xia_fs.h:
   _XIAFS_SUPER_MAGIC    0x012FD16D

특별한 파일 시스템을 위해 정의되지 않은 필드들은 -1로 설정된다. fstatfs 는 기술자 fd에 의해 참조되는 열린 파일에 관한 같은 정보를 반환한다.  

반환값

성공시, 0이 리턴된다. 에러시, -1이 리턴되며, errno 는 적당한 값으로 설정된다.  

에러

statfs:
ENOTDIR
path 의 경로 요소가 디렉토리가 아니다.
ENAMETOOLONG
path 가 너무 길다.
ENOENT
path 가 가리키는 파일이 존재하지 않는다.
EACCES
탐색 허가권이 path의 경로 요소에서 거부되었다.
ELOOP
너무 많은 상징 연결들을 path해석시에 만났다.
EFAULT
Buf 나 path 가 유효하지 않는 주소를 가리키고 있다.
EIO
파일 시스템을 읽거나 슬는 동안 I/O 에러가 발생했다.
ENOMEM
이용할수 있는 커널 메모리가 충분하지 않다.
ENOSYS
파일 시스템 path 는 statfs를 지원하지 않는다.

fstatfs:

EBADF
fd 는 유효한 열려진 파일 기술자가 아니다.
EFAULT
buf 가 유효하지 않은 주소를 가리키고 있다.
EIO
파일 시스템을 읽고 쓰는 동안 I/O 에러가 발생했다.
ENOSYS
파일 시스템 fd 가 statfs를 지원하지 않는다.
 

호환

4.4BSD.  

관련 항목

stat(2)  

역자

정강훈 <skyeyes@soback.kornet.net>, 2000년 9월 16일


 

Index

이름
사용법
설명
반환값
에러
호환
관련 항목
역자

This document was created by man2html, using the manual pages.
Time: 08:07:01 GMT, March 25, 2004