Книга: Программирование для 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
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Повреждения жесткого диска
- При копировании с жесткого диска на «флэшку» иногда появляется сообщение о дополнительной присоединенной информации, кот...
- REJECT target
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Получение помощи по работе с книгой и компакт-диском
- Использование компакт-диска
- Извлечение и возврат документов
- Извлечение и возврат документов в приложениях Microsoft Office 2007
- Прошивка и адаптивы жесткого диска
- Неисправности жесткого диска
- Неисправности дисковода