#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代码?提供一份参考下,或指点下思路也行。谢谢啦。