获取磁盘剩余空间

用 statvfs 函数 ,linux下为statfs 函数
#i nclude <sys/statfs.h>
<bits/statfs.h>
下有结构 
struct statfs
  {
    int f_type;
    int f_bsize;
#ifndef __USE_FILE_OFFSET64
    __fsblkcnt_t f_blocks;
    __fsblkcnt_t f_bfree;
    __fsblkcnt_t f_bavail;
    __fsfilcnt_t f_files;
    __fsfilcnt_t f_ffree;
#else
    __fsblkcnt64_t f_blocks;
    __fsblkcnt64_t f_bfree;
    __fsblkcnt64_t f_bavail;
    __fsfilcnt64_t f_files;
    __fsfilcnt64_t f_ffree;
#endif
    __fsid_t f_fsid;
    int f_namelen;
    int f_spare[6];
  };


#i nclude <stdio.h>
#i nclude <stdlib.h>
#i nclude <unistd.h>
#i nclude <sys/statfs.h>
int main()
{
int i;
struct statfs disk_statfs;
printf("%d %d %d", sizeof(disk_statfs), sizeof(disk_statfs.f_blocks), 
sizeof(disk_statfs.f_ffree), sizeof(disk_statfs.f_fsid));
// printf("Get: %d", statfs("/dev/hda2", &disk_statfs));
printf("Get: %d", statfs("/", &disk_statfs));
printf("f_type: %d", disk_statfs.f_type);
printf("f_bsize: %d", disk_statfs.f_bsize);// 每块的大小(字节数) bytes
printf("f_blocks: %d", disk_statfs.f_blocks);
printf("f_bfree: %d", disk_statfs.f_bfree);
printf("f_bavail: %d", disk_statfs.f_bavail);// 可用的块数 allbytes = f_bavail*f_bsize
printf("f_files: %d", disk_statfs.f_files);
printf("f_ffree: %d", disk_statfs.f_ffree);
/* printf("f_fsid: %d", disk_statfs.f_fsid);
printf("f_namelen: %d", disk_statfs.f_namelen);
for(i=0; i<6; i++)
printf("f_spare[%d]: %d", i+1, disk_statfs.f_spare[i]);  */
return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值