linux下怎么用c获取硬盘物理序列号?
真是一个头疼的问题linux下怎么用c获取硬盘物理序列号?哪位c高手知道?
什么redhat,ubuntu,salories,aix等等等等都能用的
硬盘类型可能是sata,也可能是scsi。
如果是raid,要获取主盘的物理序列号
不知道c高手们有没有一个通用的解决方案?谢谢了
物理序列号哦!
[ 本帖最后由 freish 于 2009-8-28 11:24 编辑 ]
程序代码:#include <stdio.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>
#include <sys/fcntl.h>
int main()
{
struct hd_driveid id;
int fd = open("/dev/sda", O_RDONLY|O_NONBLOCK);
if (fd < 0) {
perror("/dev/sda");
return 1; }
if(!ioctl(fd, HDIO_GET_IDENTITY, &id))
{
printf("Serial Number=%s\n",id.serial_no);
}
return 0;
}