libburn中函数burn_open_auto_dev的定义
时间: 2023-10-03 22:07:03 浏览: 39
`burn_open_auto_dev`是libburn库中的一个函数,用于打开一个可用的烧录设备。其定义如下:
```c
int burn_open_auto_dev(burn_drive **p_drive, int *p_last_error);
```
该函数接受两个参数,第一个参数是一个指向指针的指针,用于返回指向新打开的烧录设备的指针。第二个参数是一个指向整型的指针,用于返回最后一个错误的错误码。
在执行该函数时,libburn会首先检查系统中是否有可用的烧录设备。如果有,则会返回一个指向新打开的烧录设备的指针。如果没有可用的烧录设备,则会返回一个错误码,并将错误码存储在p_last_error指向的整型变量中。
需要注意的是,该函数只会打开第一个可用的烧录设备。如果需要打开特定的烧录设备,可以使用`burn_open_specific_device`函数。
相关问题
libburn中函数burn_open_specific_device的定义及返回值
`burn_open_specific_device`是libburn库中的一个函数,用于打开指定名称的烧录设备。其定义如下:
```c
int burn_open_specific_device(const char *dev_name, burn_drive **p_drive, int *p_last_error);
```
该函数接受三个参数,第一个参数是一个指向字符串的指针,指定要打开的烧录设备的名称。第二个参数是一个指向指针的指针,用于返回指向新打开的烧录设备的指针。第三个参数是一个指向整型的指针,用于返回最后一个错误的错误码。
在执行该函数时,libburn会尝试打开指定名称的烧录设备。如果打开成功,则会返回一个指向新打开的烧录设备的指针。如果打开失败,则会返回一个错误码,并将错误码存储在p_last_error指向的整型变量中。
需要注意的是,该函数返回的错误码可以通过`burn_error_msg`函数转换为可读的错误消息。如果需要打开第一个可用的烧录设备,可以使用`burn_open_auto_dev`函数。
libburn中函数struct burn_drive的定义
在 libburn 中,`struct burn_drive` 结构体表示一个烧录驱动器。
该结构体的定义如下:
```c
struct burn_drive {
struct burn_backend *p;
int dev_fd;
unsigned int dev_inquiry_len;
unsigned char *dev_inquiry_data;
int media_fd;
unsigned int media_inquiry_len;
unsigned char *media_inquiry_data;
int media_type;
int media_present;
int ejectable;
int blank;
struct burn_write_opts *write_opts;
struct burn_disc *disc;
void *priv;
};
```
其中,各个字段的含义如下:
- `p`:指向 `struct burn_backend` 结构体的指针,表示该驱动器所使用的后端。
- `dev_fd`:表示烧录驱动器的文件描述符。
- `dev_inquiry_len` 和 `dev_inquiry_data`:表示烧录驱动器的 Inquiry 数据长度和数据内容。
- `media_fd`:表示当前插入到烧录驱动器中的媒体的文件描述符。
- `media_inquiry_len` 和 `media_inquiry_data`:表示当前插入到烧录驱动器中的媒体的 Inquiry 数据长度和数据内容。
- `media_type`:表示当前插入到烧录驱动器中的媒体的类型。
- `media_present`:表示烧录驱动器中是否已经插入了媒体。
- `ejectable`:表示该烧录驱动器是否支持弹出媒体。
- `blank`:表示烧录驱动器中当前是否有空白媒体。
- `write_opts`:指向 `struct burn_write_opts` 结构体的指针,表示烧录选项。
- `disc`:指向 `struct burn_disc` 结构体的指针,表示正在烧录的光盘。
- `priv`:指向私有数据的指针,可以由烧录驱动器的后端使用。