ide的
#include <linux/hdreg.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/hdreg.h>
#include <stdio.h>
#include <fcntl.h>
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=%.20s/n",id->model,id->fw_rev,id->serial_no);
}
scis的
#include <stdio.h>
#include <fcntl.h>
#include <scsi/scsi.h>
struct {
int a[2];
}id;
int main(void){
int fd = 0;
fd = open("/dev/sda",O_RDONLY);
if(fd<0)
printf("open sda error./n");
Sg_scsi_id idd;
if (!ioctl(fd, SCSI_IOCTL_GET_IDLUN, &id)){
printf("ID = %d-%d/n", id.a[0], id.a[1]);
}else
printf("HDIO_GET_IDENTITY failed!/n");
return 0;
}