too few arguments to function ‘burn_drive_scan’
时间: 2024-01-05 14:05:17 浏览: 28
这个错误提示说明你在调用 `burn_drive_scan` 函数时,传入的参数数量不够。
`burn_drive_scan` 函数的定义如下:
```
struct burn_drive_list* burn_drive_scan(struct burn_source* source,
int* p_num_drives);
```
可以看到,该函数需要传入两个参数:一个 `burn_source` 类型的指针和一个 `int` 类型的指针。
在你的代码中,可能是因为没有传入第一个参数导致了这个错误。你可以尝试修改代码,将第一个参数传入进去,例如:
```
#include <stdio.h>
#include <libburn.h>
int main() {
struct burn_drive_list *list;
int num_drives;
struct burn_source source;
// 初始化 burn_source 结构体
burn_source_set(&source, BURN_FLAG_NONE, 0);
// 扫描系统中的刻录设备
list = burn_drive_scan(&source, &num_drives);
printf("找到 %d 个可用的刻录设备:\n", num_drives);
for (int i = 0; i < num_drives; i++) {
printf("%d: %s\n", i + 1, list->drives[i]->name);
}
// 释放驱动器列表
burn_drive_list_free(list);
return 0;
}
```
在这个示例代码中,我们新增了一个 `burn_source` 类型的变量 `source`,并通过 `burn_source_set` 函数初始化它的值。然后将 `source` 和 `num_drives` 一起传入 `burn_drive_scan` 函数中,就可以获取到可用的刻录设备列表了。
如果还有其他问题,欢迎继续咨询。