#include <linux/types.h>
#include <linux/hdreg.h>
#include <fcntl.h>
#include <sys/ioctl.h>
int main() {
int fd,err,i;
struct hd_driveid hd; /*这个结构体是关键*/
if( (fd=open("/dev/sda", O_RDONLY ) ) < 0 )
perror("Device Open Error");
if( (err = ioctl(fd,HDIO_GET_IDENTITY,&hd) ) < 0) /*用法很简单*/
perror("ioctl err");
else
printf("Serial No = %s\n",hd.serial_no);
return (0);
}
#include <linux/hdreg.h>
#include <fcntl.h>
#include <sys/ioctl.h>
int main() {
int fd,err,i;
struct hd_driveid hd; /*这个结构体是关键*/
if( (fd=open("/dev/sda", O_RDONLY ) ) < 0 )
perror("Device Open Error");
if( (err = ioctl(fd,HDIO_GET_IDENTITY,&hd) ) < 0) /*用法很简单*/
perror("ioctl err");
else
printf("Serial No = %s\n",hd.serial_no);
return (0);
}
用命令
$ sudo hdparm -i /dev/sda
也可以获得
本文介绍了一个简单的C程序,用于通过ioctl系统调用获取Linux系统中硬盘的序列号,并展示了如何使用hdparm命令达到相同目的。
4625

被折叠的 条评论
为什么被折叠?



