萝卜头IT论坛

搜索
查看: 5947|回复: 3
收起左侧

[水] C语言读取MBR

[复制链接]
发表于 2013-5-29 21:00:24 | 显示全部楼层 |阅读模式
本文来自lyz810的空间,http://hi.baidu.com/lyz810/blog/item/aab6d5fd580fcadcfd037fe3.html
  1. #include <stdio.h>
  2. void ReadMBR(unsigned char *buf,int i=0,int n=511)
  3. {
  4. printf("             0   1   2   3   4   5   6   7 -  8   9   A   B   C   D   E   F\n");
  5. int j=0;
  6. int d=i/16*16;
  7. if(i%16)
  8. {
  9. printf("%010X  ",d);
  10. d+=16;
  11. for(j=0;j<i%16;j++)
  12. {
  13. printf("    ");
  14. }
  15. if(i%16>7)
  16. {
  17. printf(" ");
  18. }
  19. }
  20. for(;i<=n;i++)
  21. {
  22. if(i%16==0)
  23. {
  24. printf("%010X  ",d);
  25. d+=16;
  26. }
  27. printf("%02X  ",buf[i]);
  28. if((i+1)%8==0&&(i+1)%16)
  29. {
  30. printf("\b- ");
  31. }
  32. if((i+1)%16==0)
  33. {
  34. printf("\n");
  35. }
  36. }
  37. }
  38. void main()
  39. {
  40. unsigned char buf[512]={0};
  41. FILE *fp;
  42. fp=fopen("\\\\.\\PHYSICALDRIVE0","rb");//二进制只读方式打开磁盘0
  43. fread(buf,1,512,fp);//读取512字节(1个扇区),并将值放到buf数组中
  44. fclose(fp);
  45. ReadMBR(buf);//按一定格式显示数组内容
  46. }
复制代码


回复

使用道具 举报

发表于 2013-6-11 09:02:26 | 显示全部楼层
这段代码写得好
回复

使用道具 举报

发表于 2021-6-5 12:46:52 | 显示全部楼层
好,学习了。
回复

使用道具 举报

发表于 2021-6-6 06:35:30 | 显示全部楼层
代码真的非常好,谢谢分享,认真学习中。
回复

使用道具 举报

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2024-3-29 07:24 , Processed in 0.095427 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表