kdk_get_hard_disk3
获取系统接入所有硬盘
Usage
#include <libkydiskinfo.h> extern char** kdk_get_hard_disk(); Link with -lkydiskinfo.
Detailed Description
The kdk_get_hard_disk() function obtains the system access hard disk list information during the call process.
Return value
The return value is a char** type, with each string representing the absolute path of a disk and ending with a NULL character.
After completion, kdk_free_disklist() function releases a list of disk information.
Examples
#include "libkydiskinfo.h"
#include <stdio.h>
#include <stdlib.h>
static void display_disk_info(kdk_diskinfo *di)
{
printf("---------------%s------------------0, di->name);
printf("Disk Sectors: %llu0, di->sectors_num);
printf("Disk Sector Size: %u0, di->sector_size);
printf("Disk Size: %f MiB0, di->total_size_MiB);
printf("Disk Model: %s0, di->model ? di->model : "None");
printf("Disk Serial: %s0, di->serial ? di->serial : "None");
printf("Disk Partition Number: %u0, di->partition_nums);
printf("Disk Type: %d0, di->disk_type);
printf("Disk fwrev: %s0, di->fwrev);
}
static void display_disk_list(char **disklist)
{
int count = 0;
while (disklist[count])
{
printf("No. %d %s0, count + 1, disklist[count]);
count ++;
}
}
int main()
{
char **disklist = kdk_get_disklist();
// display_disk_list(disklist);
for (int i = 0; disklist[i]; i++)
{
kdk_diskinfo *sdainfo = kdk_get_diskinfo(disklist[i]);
if (!sdainfo)
{
printf("[%s]Get disk info error.0, disklist[i]);
continue;
}
display_disk_info(sdainfo);
kdk_free_diskinfo(sdainfo);
}
kdk_free_disklist(disklist);
char **di = kdk_get_hard_disk();
size_t num = 0;
while (di[num])
{
printf("No. %ld %s0, num + 1, di[num]);
char *res = kdk_get_hard_disk_size(di[num]);
printf("容量 = %s0, res);
free(res);
res = kdk_get_hard_fwrev(di[num]);
printf("固态版本 = %s0, res);
free(res);
res = kdk_get_hard_vendor(di[num]);
printf("厂商 = %s0, res);
free(res);
res = kdk_get_hard_type(di[num]);
printf("类型 = %s0, res);
free(res);
res = kdk_get_hard_model(di[num]);
printf("型号 = %s0, res);
free(res);
res =kdk_get_hard_serial(di[num]);
printf("序列号 = %s0, res);
free(res);
num ++;
}
kdk_free_disklist(di);
return 0;
}