首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

ioctl(fd, HDIO_GET_IDENTITY, &id)时疏失

2013-11-01 
ioctl(fd, HDIO_GET_IDENTITY, &id)时出错#include stdio.h#include fcntl.h#include linux/hdreg.h

ioctl(fd, HDIO_GET_IDENTITY, &id)时出错

#include <stdio.h>
#include <fcntl.h>
#include <linux/hdreg.h>
#include <sys/ioctl.h>
 #include <string.h>

static void dump_identity (const struct hd_driveid *id);

int main(void){
    int fd = 0;
    fd = open("/dev/sda",O_RDONLY);
    static struct hd_driveid id;

     if (!ioctl(fd, HDIO_GET_IDENTITY, &id))
    {
         dump_identity(&id);
     }
     else
         printf(" HDIO_GET_IDENTITY failed\n");
         perror("ioctl:");
      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);
  }
运行时出现ioctl:: Invalid argument,求大神解答
[解决办法]
确定你的文件是否正确打开,检查下fd;
提示错误是无效参数,该设备驱动不支持此参数。

[解决办法]
man 3p ioctl

热点排行