刚开始工作,今天要写个小代码 ,实现下查看cpu序列号,本来想用ioctl这个函数,可是发现,虽然它可以用来查看硬盘的序列号,网卡地址等等,但是好像不支持查看cpu系列号,在网上找了找,需要用cpuid指令,写内联函数,我想知道,ioctl不能实现么? 有么有么 兄弟知道
用特殊汇编指令应该是能读出来的。除非OS把这个指令锁了。就是OS启动时配置CPU的状态位,把这个内容给锁了。 如果INTEL的片子,你查下INTEL的相关开发文档。应该有的。
######回复 @中山野鬼 : 这个函数是用来做readfile,writefile以外的事情的。######回复 @zhouxingxing : ioctl就不是标准库函数,只是编译器提供的库函数,我没研究过这个函数。除非不用编译器提供的库函数我就很SB,否则那些函数我当无视。######嗯嗯,看了汇编的代码,也不难,但是,想知道,ioctl是让程序从用户态陷入到内核态,应该可以实现,还是说函数本身只是实现了部分功能。######cpuid在用户态就可以用,不需要进入内核态。ioctl的功能哪这个没关系的。ioctl要你预先有个设备有取cpuid的功能才行。
######ioctl的作用就是你写个驱动,然后用ioctl与其通信。######就是说ioctl没有这个功能呗######
ioctl是用来做in/out的,没法取cpuid
顺便说一下,现在已经没有真正的cpu序列号了,除非你有p3
cpuid出来的只是cpu的型号和features
######http://wenku.baidu.com/view/f7fc9dc24028915f804dc2c3.html
大约在85页左右,有获取CPUID信息的代码,以前读书的时候在VC6上写来试过倒是能取到,现在不知道是什么情况了
######都是汇编,难道就没有封装好的函数么?######ioctl是用来做in/out的,没法取cpuid
顺便说一下,现在已经没有真正的cpu序列号了,除非你有p3
cpuid出来的只是cpu的型号和features
正解!美国法律处于保护隐私的需要,禁止CPU厂商刻入CPU Serial NO
现在搞的什么CPUID就是CPU型号,不是Serial NO
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。