当前位置: 技术问答>linux和unix
Linux C读取硬盘序列号,急
来源: 互联网 发布时间:2016-03-22
本文导语: 怎样 在 Linux c 下读取硬盘序列号呢,我的Linux装在 VM 上,读取的序列号好像 不是正真的 硬盘序列号,好像是 VM的虚拟硬盘号 ,请 大侠们 指导一下。 | 你是用什么方法读的? ...
怎样 在 Linux c 下读取硬盘序列号呢,我的Linux装在 VM 上,读取的序列号好像 不是正真的 硬盘序列号,好像是 VM的虚拟硬盘号 ,请 大侠们 指导一下。
|
你是用什么方法读的?
|
#include
#include
#include
static void dump_identity (const struct hd_driveid *id);
int main(void){
int fd = 0;
fd = open("/dev/hda",O_RDONLY);
static struct hd_driveid id;
if (!ioctl(fd, HDIO_GET_IDENTITY, &id)) {
dump_identity(&id);
}
else
printf(" HDIO_GET_IDENTITY failed");
return 0;
}
static void dump_identity (const struct hd_driveid *id)
{
const unsigned short int *id_regs= (const void*) id;
printf("Model=%.40s, FwRev=%.8s, SerialNo=%.20sn",
id->model, id->fw_rev, id->serial_no);
}
|
我看过在windows下取得序列号的程序
和linux的很像
因为VM接管了linux的所有硬件请求,
有因为VM是虚拟物理硬盘。
我估计你在VM中是读不到正确的的序列号的。
和linux的很像
因为VM接管了linux的所有硬件请求,
有因为VM是虚拟物理硬盘。
我估计你在VM中是读不到正确的的序列号的。
|