C/C++解析硬盘分区信息

本文通过C/C++代码展示了如何获取硬盘分区信息,包括完整的代码实现和运行结果展示。
摘要由CSDN通过智能技术生成

一、完整代码

#include <windows.h>
#include <winioctl.h> //DDK驱动开发与控制
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define BufferLength 1024

//将四个连续字节存放的值转为int型
int transtoint(unsigned char a[])
			{
   
				int sum = 0;
				for(int i=0;i<4;i++){
   
					int m = a[i]/16;
					int n = a[i]%16;
					float len =16;
					//printf(" %d %d ",m,n);
					int temp1 = m*(pow(len,7-2*i));
					int temp2 = n*(pow(len,6-2*i));
					//printf(" %d ",temp);
					sum = sum+temp1+temp2;
				}
				return sum;
			}
//十六进制输出
void HexOutput(char* buf, size_t len)   
{
    
	unsigned char a = buf[0];
	printf("第一字节是:%x\n\n",a);
	printf("          第一部分(引导代码):\n\n");
	int flag = 0;
    for(size_t i=0; i<len; ++i)   
    {
      
        unsigned char c = buf[i]; // must use unsigned char to print >128 value 
  
		flag++;
        if( c< 16
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值