免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2814 | 回复: 1
打印 上一主题 下一主题

请教linux下读CF卡序列号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-03 15:18 |只看该作者 |倒序浏览
求救:
将CF卡通过读卡器插入USB接口上,可以用ioctl(fd, HDIO_GET_IDENTITY, id) 来读得序列号,
这是IDE的,HDIO_GET_IDENTITY就不支持SCSI了,
大家帮我想看看啊,谢谢了!

这是网上的一段例子:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <linux/hdreg.h>
#include <sys/ioctl.h>

static void dump_identity (const struct hd_driveid *id)
{
        printf("\n Model=%.40s, FwRev=%.8s, SerialNo=%.20s",
                id->model, id->fw_rev, id->serial_no);
}

int main(int argc,char **argv)
{
        struct hd_driveid id;
        char *devname = "/dev/hda";
        int fd = -1;
        
        fd   =   open(devname,   O_RDONLY|O_NONBLOCK);  
        
        if (fd < 0)
        {
                perror(devname);
                exit(errno);
        }        
         
        if (!ioctl(fd, HDIO_GET_IDENTITY, &id))
        {
                dump_identity(&id);
        }
        
        close(fd);
               
        return 0;
}

可以读到,但是通过USB接口的话,就不行了。

论坛徽章:
0
2 [报告]
发表于 2008-12-03 15:46 |只看该作者
在线等高手啊!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP