使用C程序在linux下查看硬盘大小

本文介绍了在Linux环境下,如何使用C语言编程来获取硬盘的容量。文章详细讨论了三种方法:通过statvfs()函数、fdisk命令及ioctl()系统调用。尽管statvfs()在传入设备文件路径时返回的是挂载分区信息,但fdisk命令结合字符串分析和ioctl()直接读取设备属性提供了获取硬盘大小的解决方案。
摘要由CSDN通过智能技术生成

问题描述:在linux下使用C程序读取一块硬盘的容量。

例如有两块SAS硬盘挂载在一个RAID controller下,分别是/dev/sdd (500G)和/dev/sde(300G),需要用C代码读硬盘的大小,然后进行整个硬盘的随机读写测试。


方法一:使用statvfs()获取硬盘大小。

statvfs()的描述如下:

NAME
statvfs, fstatvfs - get file system statistics  
SYNOPSIS
#include <sys/statvfs.h>

int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);  
DESCRIPTION
The function statvfs returns information about a mounted file system. path is the path name of any file within the mounted filesystem. buf is a pointer to a statvfs structure defined approximately as follows:

  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 */
    fsblkcn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值