📄 file.c
字号:
#include <stdio.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#define DEVNAME "/dev/fd0H1440"#define BYTES_PER_SECTOR 512void ReadBootSector(unsigned char *buf){ int i; printf("--------------- Boot -----------------\n"); for (i = 0; i < 32; i++) printf("%2d ",i); for (i = 0; i < 256; i++) { if (i % 32 == 0) printf("\n"); printf("%2x ",buf[i]); } printf("\n\n");}void ReadCluster(unsigned char *buf,int addr){ int i; printf("---------------Data %x-----------------\n",addr); for (i = 0; i < 32; i++) printf("%2d ",i); for (i = 0; i < 256; i++) { if (i % 32 == 0) printf("\n"); printf("%2x ",buf[i]); } printf("\n\n");}void ReadFAT(unsigned char *buf){ int i; printf("----------------FAT-----------------\n"); for (i = 0; i < 32; i++) printf("%2d ",i); for (i = 0; i < 256; i++) { if (i % 32 == 0) printf("\n"); printf("%2x ",buf[i]); } printf("\n\n");}void ReadDirectory(unsigned char *buf){ int i; printf("--------------ROOTDIR---------------\n"); for (i = 0; i < 32; i++) printf("%2d ",i); for (i = 0; i < 256; i++) { if (i % 32 == 0) printf("\n"); printf("%2x ",buf[i]); } printf("\n\n");}int main(){ int fd,count; int ret; unsigned char buf[256]; /* Attention to type */ if ((fd = open(DEVNAME,O_RDWR)) < 0) perror("open failed"); if ((count = read(fd,buf,256)) < 0) perror("read failed"); ReadBootSector(buf); if ((ret = lseek(fd,0x2600,SEEK_SET)) < 0) perror("seek failed\n"); if ((count = read(fd,buf,256)) < 0) perror("read failed\n"); ReadDirectory(buf); if ((ret = lseek(fd,0x200,SEEK_SET)) < 0) perror("seek failed\n"); if ((count = read(fd,buf,256)) < 0) perror("read failed\n"); ReadFAT(buf); if ((ret = lseek(fd,0x4200,SEEK_SET)) < 0) perror("seek failed\n"); if ((count = read(fd,buf,256)) < 0) perror("read failed\n"); ReadCluster(buf,0x4200); close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -