如何解决如何从内核中的超级块读取数据?
我在用户空间的 c
上编写了主管应用程序,我在超级块上保留了列入白名单的 ID。它从 superblock 读取数据:
filepath = "/dev/flashSSD"
char soz[15];
int i=1;
fp = open(filepath,O_RDONLY);
if (fp<0) {printf("Unable to open %s block.\n",filepath);exit(EXIT_FAILURE);}
off_t off = lseek(fp,SEEK_SET);
ssize_t len = read(fp,prc,sizeof prc);
sscanf(prc[0],"%d",sany);
fp = open(filepath,O_RDWR);
if (fp<0) {printf("Unable to open %s block.\n",filepath);exit(EXIT_FAILURE);}
if (lseek(fp,SEEK_SET)<0) {perror("write1: ");}
if (write(fp,&prc,sizeof(prc))<0) {perror("write2: ");}
close(fp);
现在,我如何从 kernel
中的超级块读取数据?
解决方法
感谢@Tsyvarev,我了解到我们可以像从文件一样读取超级块。
int read_sb() {
int fd;
char magl[1024];
fd = open("/dev/flashSSD",O_RDONLY);
/* Reads the boot section and the superblock */
read(fd,magl,1024);
close(fd);
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。