Linux认证:Linux下获取磁盘信息办法
http://itpx.eol.cn 来源: 作者:Linux获取磁盘信息办法;Linux认证;Linux 2011-07-27 大 中 小
Linux认证:Linux下获取磁盘信息办法,熟悉Linux的都知道,Linux下硬盘的命名规则是had、hdb…sda、sdb之类的。但是,如何才能知道机器上到底有多少块硬盘呢?
刚开始,我以为/dev目录下会有所体现结果我发现设备文件存在并不代表这个设备。那么怎么办才好呢。后来我发现fdisk可以得到硬盘的数量。于是就阅读了一下fdisk的源代码。果然找到了Linux获取硬盘数量的方法。实例代码如下:
#include
#include
int GetDiskCount()
{
FILE* f = fopen(“/proc/partitions”, “r”);
if (!f)
{
fprintf(stderr, “fopen /proc/partitions failed!errno=%d\n”, errno);
return 0;
}
char line[100], ptname[100], devname[120], *s;
int ma, mi, sz;
int nDiskCount = 0;
while (fgets(line, sizeof(line), f))
{
if (sscanf(line, “ %u %u %u %[^\n ]”,
&ma, &mi, &sz, ptname) != 4)
continue;
for (s = ptname; *s; s++)
continue;
/* note: excluding ‘0’: e.g. mmcblk0 is not a partition name! */
if (s[-1] 》= ‘1’ && s[-1] 《= ‘9’)
continue;
nDiskCount++;
}
fclose(f);
return nDiskCount;
}
int main(int argc, char * argv[])
{
printf(“DiskCount: %d\n”, GetDiskCount());
return 0;
}
免责声明:
① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。
② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。