Книга: Программирование для Linux. Профессиональный подход

Листинг 6.2. (cdrom-eject.c) Извлечение компакт-диска из дисковода

Листинг 6.2. (cdrom-eject.c) Извлечение компакт-диска из дисковода

#include <fcntl.h>
#include <linux/cdrom.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
 /* Открытие файла устройства, указанного в командной строке. */
 int fd = open(argv[1], O_RDONLY);
 /* Извлечение компакт-диска из дисковода. */
 ioctl(fd, CDROMEJECT);
 /* Закрытие файла. */
 close(fd);
 return 0;
}

В листинге 6.2 представлена короткая программа, которая запрашивает извлечение компакт-диска из дисковода CD-ROM. Программа принимает единственный аргумент командной строки: имя дисковода CD-ROM. Программа открывает файл устройства и вызывает функцию ioctl() с кодом запроса CDROMEJECT. Этот код определен в файле <linux/cdrom.h> и служит устройству указанием извлечь компакт-диск из дисковода.

Например, если в системе имеется IDE-дисковод CD-ROM, подключенный в качестве главного устройства к дополнительному IDE-контроллеру, соответствующий файл устройства будет называться /dev/hdc. Тогда компакт-диск извлекается из дисковода с помощью такой команды:

% ./cdrom-eject /dev/hdc

Оглавление книги


Генерация: 1.218. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз