statvfs

Autres langues

Langue: ja

Version: 2003-08-22 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

statvfs, fstatvfs - ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÅý·×¤ò¼èÆÀ¤¹¤ë

½ñ¼°

#include <sys/statvfs.h>

int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);

ÀâÌÀ

´Ø¿ô statvfs() ¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ path ¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÃæ¤ÎǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ buf ¤Ï¡¢¤À¤¤¤¿¤¤°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë statvfs ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë:

struct statvfs {

    unsigned long  f_bsize;    /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º */

    unsigned long  f_frsize;   /* ¥Õ¥é¥°¥á¥ó¥È¥µ¥¤¥º */

    fsblkcnt_t     f_blocks;   /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥¤¥º (f_frsize ñ°Ì) */

    fsblkcnt_t     f_bfree;    /* ²òÊü¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¿ô */

    fsblkcnt_t     f_bavail;   /* ¥ë¡¼¥È°Ê³°¤Î²òÊü¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯¿ô */

    fsfilcnt_t     f_files;    /* inode ¿ô */

    fsfilcnt_t     f_ffree;    /* ²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô */

    fsfilcnt_t     f_favail;   /* ¥ë¡¼¥È°Ê³°¤Î²òÊü¤µ¤ì¤Æ¤¤¤ë inode ¤Î¿ô */

    unsigned long  f_fsid;     /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID */

    unsigned long  f_flag;     /* ¥Þ¥¦¥ó¥È¥Õ¥é¥° */

    unsigned long  f_namemax;  /* ¥Õ¥¡¥¤¥ë̾¤ÎŤµ¤ÎºÇÂçÃÍ */

};

¤³¤³¤Ç¡¢·¿ fsblkcnt_t ¤È fsfilcnt_t ¤Ï <sys/types.h> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£ ¤«¤Ä¤Æ¡¢¤³¤ì¤é¤Ï¶¦¤Ë unsigned long ¤Ç¤¢¤Ã¤¿¡£

¥Õ¥£¡¼¥ë¥É f_flag ¤Ï (¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Î) ¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¤¢¤ë (¥Þ¥¦¥ó¥È¥Õ¥é¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¢ mount(8) ¤ò»²¾È¤¹¤ë¤³¤È)¡£ POSIX ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ó¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ê:

ST_RDONLY
Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¡£
ST_NOSUID
exec(2) ¤Ë̵»ë¤µ¤ì¤ë set-user-id/set-group-ID ¥Ó¥Ã¥È¡£

ÊÖ¤µ¤ì¤¿¹½Â¤ÂΤÎÁ´¤Æ¤Î¥á¥ó¥Ð¤¬Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç °ÕÌ£¤Î¤¢¤ëÃͤǤ¢¤ë¤«Èݤ«¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£

fstatvfs() ¤Ï¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿ fd ¤Ç»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢Æ±¤¸¾ðÊó¤òÊÖ¤¹¡£

ÊÖ¤êÃÍ

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

¥¨¥é¡¼

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

½àµò

POSIX.1-2001

Ãí°Õ

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

¸½ºß¤Î glibc ¤Î¼ÂÁõ¤Ë¤ª¤¤¤Æ¡¢


   pathconf(path, _PC_REC_XFER_ALIGN);

   pathconf(path, _PC_ALLOC_SIZE_MIN);

   pathconf(path, _PC_REC_MIN_XFER_SIZE);

¤Ï¡¢¤½¤ì¤¾¤ì statvfs(path,buf) ¤ÎÊÖ¤êÃͤΠf_frsize, f_frsize, f_bsize ¥Õ¥£¡¼¥ë¥É¤ò»È¤¦¡£

´ØÏ¢¹àÌÜ

statfs(2)