#include <QString>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>
#include <fcntl.h>
#include <errno.h>
int main(){
struct hd_driveid id;
int fd = open("/dev/sda", O_RDONLY|O_NONBLOCK);
if (fd < 0)
{
perror("/dev/sda");
}
if(!ioctl(fd, HDIO_GET_IDENTITY, &id))
{
QString s1((char *)id.serial_no);
printf("Serial Number=%s\n",id.serial_no);
}
}
程序执行后提示/dev/sda: Permission denied
我的程序要求不在root用户下执行,但/dev/sda打不开,我要怎样处理才行?哪位大哥有读取硬盘序列号的qt代码?提供一份参考下,或指点下思路也行。谢谢啦。