我正在尝试构建我自己的 C 程序,它基本上就像 fdisk vdisk 'p' 命令一样工作。我只想能够读取磁盘的前 512 个字节,查找分区的开头(0x1BE),然后读取分区类型、名称、大小等。我不确定如何实际读取这些值。我已经使用 read() linux 函数读取 512 个字节,但是当我尝试以任何方式显示/查看它们时,什么都没有显示。我究竟做错了什么?
int main(int argc, char *argv[]) {
int bytes_read;
char mbr[512];
int file;
if(argc == 1) {
// Print some help info
printf ("Here is some help info: \n\n");
} else if(argc < 3) {
printf("File: %s\n\n", argv[1]);
file = open(argv[1], O_RDONLY);
lseek(bytes_read, 0, 0);
//First get the MBR
bytes_read = read(file, mbr, 512);
printf("MBR=%s\n\nbytes_read=%d\n\n", mbr, bytes_read);
} else {
printf ("Incorrect usage: fdisk <disk>\n\n");
}
}