我知道硬盘驱动器是系统的文件( / dev / sdXX ) - 然后像文件一样对待 - 我对此有疑问:< / p>
-------第一次尝试----------
int numSecteur=2;
char secteur [512];
FILE* disqueF=fopen("/dev/sda","r"); //tried "rb" and sda1 ...every thing
fseek(disqueF, numSecteur*512,SEEK_SET);
fread(secteur, 512, 1, disqueF);
fclose(disqueF);
-------第二次尝试----------
int i=open("/dev/sda1",O_RDONLY);
lseek(i, 0, SEEK_SET);
read(i,secteur,512);
close(i);
------打印结果----------
printf("hex : %04x\n",secteur);
printf("string : %s\n",secteur);
答案 0 :(得分:1)
- 我尝试了以下几行代码,但没有任何正面的内容
醇>
那不是问题。
- 为什么文件/ dev / sda1的大小只有8 KB?
醇>
这不是文件大小,而是设备编号。 (有两部分,所以sda1的设备号是8,1)
- 如何存储数据(二进制或十六进制......)&#34;用于打印&#34;
醇>
数据不存储用于打印&#34;。数据被存储(代表二进制的电压,但你不需要知道),你可以任何你想要的方式打印它。
答案 1 :(得分:1)
你不能像那样打印printf()数组,你需要正确的打印结果。例如,作为十六进制转储:
for (int i = 0; i < sizeof(secteur); i++) {
printf ("%02x ", secteur[i]);
if ((i + 1) % 16 == 0)
printf ("\n");
}