linux c查看磁盘剩余
www-fo-a-sp.cn
linux下通过c编程获取磁盘大小或者获取文件所在挂在磁盘的大小,linux c获取剩余磁盘空间磁盘大小
下面是代码以及代码对应的解释
#ifdef _64_
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64
#define __USE_FILE_OFFSET64
#endif
#include <stdio.h>
#include <string.h>
#include <mntent.h>
#include <sys/statfs.h>
int main(){
struct mntent *ent;
struct statfs stat;
if(-1 == statfs("/disk2",&stat)){
perror("statfs error");
}
long all = stat.f_blocks*stat.f_bsize/1024;
long fre = stat.f_bsize*stat.f_bavail/1024;
if(all == 0)
printf("all: %ld\t free: %ld\t\n",all,fre);
}
对于statf有下面的属性
struct statfs {
long f_type; /* 文件系统类型 */
long f_bsize; /* 基础块大小 byte */
long f_blocks; /* 总的块数量*/
long f_bfree; /* 空闲的块数量 */
long f_bavail; /* free blocks avail to non-superuser */
long f_files; /* 总的节点总数 */
long f_ffree; /* 空闲节点 */
fsid_t f_fsid; /* file system id */
long f_namelen; /* maximum length of filenames */
};
上面可以通过文件获取当前文件所在磁盘的大小以及空闲大小。
看下面的运行结果图
原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n