ioctl() 获得硬盘序列号
程序代码:
#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); }
用命令
$ sudo hdparm -i /dev/sda
也可以获得