statfs 函数

来源:互联网 发布:mac下载flash好慢 编辑:程序博客网 时间:2024/05/20 00:10
/////////////////////////////statfs//////////////////////////////////////////
#include <sys/vfs.h>    /* 或者 <sys/statfs.h> */     


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


int fstatfs(int fd, struct statfs *buf); 


  
 参数:   
path: 位于需要查询信息的文件系统的文件路径名。     
fd: 位于需要查询信息的文件系统的文件描述词。 
buf:以下结构体的指针变量,用于储存文件系统相关的信息 


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;     /* 文件系统标识 */ 
   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 /* orig. minix */ 
   MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */ 
   MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */ 
      MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */ 
   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 




返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值


EACCES: (statfs())文件或路径名中包含的目录不可访问
EBADF : (fstatfs()) 文件描述词无效
EFAULT: 内存地址无效
EINTR : 操作由信号中断
EIO    : 读写出错
ELOOP : (statfs())解释路径名过程中存在太多的符号连接
ENAMETOOLONG:(statfs()) 路径名太长
ENOENT:(statfs()) 文件不存在
ENOMEM: 核心内存不足
ENOSYS: 文件系统不支持调用
ENOTDIR:(statfs())路径名中当作目录的组件并非目录
EOVERFLOW:信息溢出
原创粉丝点击