如何获取硬盘大小

内核编译和嵌入式产品的设计与开发
回复
头像
goldfox_79
帖子: 2004
注册时间: 2005-10-16 8:26
来自: 地球

如何获取硬盘大小

#1

帖子 goldfox_79 » 2019-09-19 14:27

有一个未分区的优盘接入计算机,哪个c函数能够获取优盘的大小 :Sad
头像
astolia
论坛版主
帖子: 6453
注册时间: 2008-09-18 13:11

Re: 如何获取硬盘大小

#2

帖子 astolia » 2019-09-22 21:38

如果没有特权
用标准文件函数读取/sys/block/sdX/size的内容,读出的文本结果转成整数再乘512就是总字节数

如果有特权

代码: 全选

int fd = open("/dev/sdX", O_RDONLY);
unsigned long long size = 0;
ioctl(fd, BLKGETSIZE64, &size);
头像
goldfox_79
帖子: 2004
注册时间: 2005-10-16 8:26
来自: 地球

Re: 如何获取硬盘大小

#3

帖子 goldfox_79 » 2019-09-23 9:47

多谢 :Haha
astolia 写了: 2019-09-22 21:38 如果没有特权
用标准文件函数读取/sys/block/sdX/size的内容,读出的文本结果转成整数再乘512就是总字节数

如果有特权

代码: 全选

int fd = open("/dev/sdX", O_RDONLY);
unsigned long long size = 0;
ioctl(fd, BLKGETSIZE64, &size);
回复