用C语言获取磁盘信息
时间: 2023-09-16 12:07:31 浏览: 146
获取磁盘信息可以使用系统提供的API函数来实现。以下是一个示例代码,可以获取磁盘的总容量、可用空间等信息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
ULARGE_INTEGER totalBytes;
ULARGE_INTEGER freeBytes;
if (GetDiskFreeSpaceEx("C:", NULL, &totalBytes, &freeBytes))
{
printf("Total bytes: %llu\n", totalBytes.QuadPart);
printf("Free bytes: %llu\n", freeBytes.QuadPart);
}
else
{
printf("Failed to get disk information.\n");
}
return 0;
}
```
其中,GetDiskFreeSpaceEx函数可以获取指定磁盘的信息,需要传入磁盘路径(如C:)和指向ULARGE_INTEGER类型的指针,分别表示磁盘的总容量和可用空间。如果函数调用成功,返回值为非零,否则返回值为零。
相关问题
用c语言获取linux环境下的磁盘信息
要获取Linux环境下的磁盘信息,可以使用C语言中的sys/statvfs.h头文件中的statvfs函数。该函数可以获取文件系统的统计信息,包括磁盘总容量、可用空间等信息。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <sys/statvfs.h>
int main() {
struct statvfs disk_info;
if (statvfs("/", &disk_info) == -1) {
perror("statvfs failed");
return 1;
}
unsigned long long total_size = disk_info.f_frsize * disk_info.f_blocks;
unsigned long long free_size = disk_info.f_frsize * disk_info.f_bfree;
printf("Total size: %llu bytes\n", total_size);
printf("Free size: %llu bytes\n", free_size);
return 0;
}
```
该程序将获取根目录的磁盘信息,并输出总容量和可用空间。如果需要获取其他路径下的磁盘信息,只需要将"/"改为对应的路径即可。
c语言 获取linux 磁盘 io
要获取Linux磁盘IO信息,可以使用iostat命令。在C语言中,可以使用system函数执行该命令并将结果存储在一个文件中,然后读取该文件并解析结果。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 1024
int main() {
char command[] = "iostat -d -x 1 2 > iostat.txt"; // 执行iostat命令并将结果存储在文件中
system(command);
FILE* fp;
char buffer[BUFFER_SIZE];
char* token;
fp = fopen("iostat.txt", "r");
while (fgets(buffer, BUFFER_SIZE, fp)) { // 逐行读取文件内容
if (strstr(buffer, "sda")) { // 判断是否是磁盘IO信息行
token = strtok(buffer, " "); // 使用空格分割字符串
while (token != NULL) {
printf("%s ", token);
token = strtok(NULL, " ");
}
printf("\n");
}
}
fclose(fp);
return 0;
}
```
该代码执行iostat命令并将结果存储在iostat.txt文件中,然后逐行读取该文件内容并解析磁盘IO信息行。在该示例中,只解析了包含"sda"字符串的磁盘IO信息行,并将结果输出到控制台。