statfs

Autres langues

Langue: ja

Version: 2004-06-23 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

statfs, fstatfs - ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÅý·×¤òÆÀ¤ë

½ñ¼°

#include <sys/vfs.h> /* ¤Þ¤¿¤Ï <sys/statfs.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;  /* ¥Õ¥¡¥¤¥ë̾¤ÎºÇÂçĹ */

};



¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î·¿:



   ADFS_SUPER_MAGIC      0xadf5

   AFFS_SUPER_MAGIC      0xADFF

   BEFS_SUPER_MAGIC      0x42465331

   BFS_MAGIC             0x1BADFACE

   CIFS_MAGIC_NUMBER     0xFF534D42

   CODA_SUPER_MAGIC      0x73757245

   COH_SUPER_MAGIC       0x012FF7B7

   CRAMFS_MAGIC          0x28cd3d45

   DEVFS_SUPER_MAGIC     0x1373

   EFS_SUPER_MAGIC       0x00414A53

   EXT_SUPER_MAGIC       0x137D

   EXT2_OLD_SUPER_MAGIC  0xEF51

   EXT2_SUPER_MAGIC      0xEF53

   EXT3_SUPER_MAGIC      0xEF53

   HFS_SUPER_MAGIC       0x4244

   HPFS_SUPER_MAGIC      0xF995E849

   HUGETLBFS_MAGIC       0x958458f6

   ISOFS_SUPER_MAGIC     0x9660

   JFFS2_SUPER_MAGIC     0x72b6

   JFS_SUPER_MAGIC       0x3153464a

   MINIX_SUPER_MAGIC     0x137F /* ¥ª¥ê¥¸¥Ê¥ë¤Î minix */

   MINIX_SUPER_MAGIC2    0x138F /* 30 ʸ»ú¥Õ¥¡¥¤¥ë̾¤Î minix */

   MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */

   MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 ʸ»ú¥Õ¥¡¥¤¥ë̾ */

   MSDOS_SUPER_MAGIC     0x4d44

   NCP_SUPER_MAGIC       0x564c

   NFS_SUPER_MAGIC       0x6969

   NTFS_SB_MAGIC         0x5346544e

   OPENPROM_SUPER_MAGIC  0x9fa1

   PROC_SUPER_MAGIC      0x9fa0

   QNX4_SUPER_MAGIC      0x002f

   REISERFS_SUPER_MAGIC  0x52654973

   ROMFS_MAGIC           0x7275

   SMB_SUPER_MAGIC       0x517B

   SYSV2_SUPER_MAGIC     0x012FF7B6

   SYSV4_SUPER_MAGIC     0x012FF7B5

   TMPFS_MAGIC           0x01021994

   UDF_SUPER_MAGIC       0x15013346

   UFS_MAGIC             0x00011954

   USBDEVICE_SUPER_MAGIC 0x9fa2

   VXFS_SUPER_MAGIC      0xa501FCF5

   XENIX_SUPER_MAGIC     0x012FF7B4

   XFS_SUPER_MAGIC       0x58465342

   _XIAFS_SUPER_MAGIC    0x012FD16D

f_fsid ¤Ë¤É¤ó¤ÊÃͤ¬Æþ¤ë¤Ù¤­¤Ê¤Î¤«¤Ïï¤âÃΤé¤Ê¤¤ (⤷¡¢²¼µ­¤ò»²¾È)¡£

¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ̤ÄêµÁ¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï 0 ¤¬ ÀßÄꤵ¤ì¤ë¡£ fstatfs() ¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ fd ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢Æ±¤¸¾ðÊó¤òÊÖ¤¹¡£

ÊÖ¤êÃÍ

À®¸ù¤¹¤ì¤Ð 0 ¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EACCES
(statfs() ¤Î¾ì¹ç) path ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤ (path_resolution(7) ¤â»²¾È¤¹¤ë¤³¤È)¡£
EBADF
(fstatfs() ¤Î¾ì¹ç) fd ¤ÏÍ­¸ú¤Ê¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ï¤Ê¤¤¡£
EFAULT
buf ¤Þ¤¿¤Ï path ¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¡£
EINTR
¤³¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤ÇÃæÃǤµ¤ì¤¿¡£
EIO
¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ÎÆɤ߹þ¤ß¤Î´Ö¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
ELOOP
(statfs() ¤Î¾ì¹ç) path ¤ò²ò·è¤¹¤ë¤Î¤Ëé¤ë¤Ù¤­¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿¤¹¤®¤ë¡£
ENAMETOOLONG
(statfs() ¤Î¾ì¹ç) path ¤¬Ä¹²á¤®¤ë¡£
ENOENT
(statfs() ¤Î¾ì¹ç) path ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£
ENOMEM
¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£
ENOSYS
¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¤³¤Î¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£
ENOTDIR
(statfs() ¤Î¾ì¹ç) path ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
EOVERFLOW
Ãͤ¬Â礭²á¤®¤ë¤¿¤á¡¢ÊÖ¤êÃͤι½Â¤ÂΤÇɽ¸½¤Ç¤­¤Ê¤¤¡£

½àµò

Linux ¸ÇÍ­¤Ç¤¢¤ë¡£ Linux ¤Î statfs() ¤Ï 4.4BSD ¤Î¤â¤Î¤Ë±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë¡£ (¤·¤«¤·Æ±¤¸¹½Â¤ÂΤò»ÈÍѤ·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤)

Ãí°Õ

¤³¤Î¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¡¢ ¥«¡¼¥Í¥ë¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë statfs(), fstatfs(), statfs64(), fstatfs64() ¤¬¤¢¤ë¡£

<sys/vfs.h> ¤·¤«»ý¤¿¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ê¡¢ <sys/statfs.h> ¤â»ý¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ Á°¼Ô¤Ï¸å¼Ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤Ç¡¢ Á°¼Ô¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬Îɤ¤¤È¹Í¤¨¤é¤ì¤ë¡£

LSB ¤Ç¤Ï¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë statfs(), fstatfs() ¤òÈó¿ä¾©¤È¤·¤Æ¡¢Âå¤ï¤ê¤Ë statvfs(2), fstatvfs(2) ¤ò»È¤¦¤è¤¦¤Ë»Ø¼¨¤·¤Æ¤¤¤ë¡£

f_fsid ¥Õ¥£¡¼¥ë¥É

Solaris, Irix, POSIX ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë statvfs(2) ¤¬¤¢¤ê¡¢ struct statvfs ¤òÊÖ¤¹ (<sys/statvfs.h> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ ¤³¤Î¹½Â¤ÂΤˤϡ¢ unsigned long f_fsid ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ Linux, SunOS, HP-UX, 4.4BSD ¤Ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë statfs() ¤¬¤¢¤ê¡¢ struct statfs ¤òÊÖ¤¹ (<sys/vfs.h> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ ¤³¤Î¹½Â¤ÂÎ¤Ë¤Ï fsid_t f_fsid, ¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢ fsid_t ¤Ï struct { int val[2]; } ¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ FreeBSD ¤Ç¤âƱ¤¸¤Ç¤¢¤ë¤¬¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë <sys/mount.h> ¤ò»È¤¦¡£

f_fsid ¤Ï¤¢¤ë¥é¥ó¥À¥à¤ÊÃͤò»ý¤Á¡¢ (f_fsid,ino) ¤È¤¤¤¦ 1 ÁȤÎÃͤǥե¡¥¤¥ë¤ò°ì°Õ¤Ë·èÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡¢ ¤È¤¤¤¦¤Î¤¬´ðËÜŪ¤Ê¹Í¤¨Êý¤Ç¤¢¤ë¡£ ¤¤¤¯¤Ä¤«¤Î OS ¤Ç¤Ï¡¢¥Ç¥Ð¥¤¥¹ÈÖ¹æ (¤ÎÊѼï) ¤ò»È¤Ã¤¿¤ê¡¢ ¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤È¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¥¿¥¤¥×¤òÁȤ߹ç¤ï¤»¤Æ»È¤Ã¤¿¤ê¤·¤Æ¤¤¤ë¡£ OS ¤ÎÃæ¤Ë¤Ï f_fsid ¥Õ¥£¡¼¥ë¥É¤Î¼èÆÀ¤ò¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë¸ÂÄꤷ¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë (ÈóÆø¢¥æ¡¼¥¶¤¬¼èÆÀ¤¹¤ë¤È 0 ¤È¤Ê¤ë)¡£ NFS ¤Ç¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤ë¾ì¹ç¡¢ ¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ç»È¤ï¤ì¤Æ¤ª¤ê¡¢ ¤³¤ÎÃͤòÄ󶡤¹¤ë¤È¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂ꤬¤¢¤ë¡£

¤¤¤¯¤Ä¤«¤Î OS ¤Ç¤Ï¡¢ fsid ¤ò sysfs() ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÂè 2 °ú¤­¿ô¤È¤·¤Æ»ÈÍѤǤ­¤ë¡£

´ØÏ¢¹àÌÜ

stat(2), statvfs(2), path_resolution(7)