版权所有 © 2014 tutorialspoint
int statvfs(const char *path, struct statvfs *buf); int fstatvfs(int fd, struct statvfs *buf);
struct statvfs { unsigned long f_bsize; /* file system block size */ unsigned long f_frsize; /* fragment size */ fsblkcnt_t f_blocks; /* size of fs in f_frsize units */ fsblkcnt_t f_bfree; /* # free blocks */ fsblkcnt_t f_bavail; /* # free blocks for non-root */ fsfilcnt_t f_files; /* # inodes */ fsfilcnt_t f_ffree; /* # free inodes */ fsfilcnt_t f_favail; /* # free inodes for non-root */ unsigned long f_fsid; /* file system ID */ unsigned long f_flag; /* mount flags */ unsigned long f_namemax; /* maximum filename length */ };
此处类型fsblkcnt_t和fsfilcnt_t在<sys/types.h>中定义。两者过去都为unsigned long。
字段f_flag是位掩码(挂载标志,参见mount(8))。POSIX定义的位是:
返回的结构的所有成员在所有文件系统上是否具有有意义的值是不确定的。
fstatvfs()返回有关由描述符fd引用的打开文件的相同信息。
当前的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)
广告