Отправляет email-рассылки с помощью сервиса Sendsay

Управление CDROM на C++

Привет всем!
есть программа:
#include <stdio.h>
#include <sys/types.h>
#include <linux/types.h>
#include <fcntl.h>
#include <linux/cdrom.h>

int main(void)
{
int cdrom;
int status;
cdrom = open("/dev/cdrom", O_RDONLY | O_NONBLOCK);
status = ioctl(cdrom, CDROM_DRIVE_STATUS);
printf("Возврат drive status: %d\n", status);
status = ioctl(cdrom, CDROM_DISC_STATUS);
printf("Возврат disc status: %d\n", status);
close(cdrom);
}
Запускаю в трех ситуациях:
1. Лоток задвинут, диска нет
2. Лоток выдвинут
3. Лоток задвинут, диск есть

Ожидаемый вывод программы:
1.
Возврат drive status: 1
Возврат disc status: 0
2.
Возврат drive status: 2
Возврат disc status: 0
3.
Возврат drive status: 4
Возврат disc status: 101

Реальный вывод программы:
1.
Возврат drive status: 2
Возврат disc status: 0
2.
Возврат drive status: 2
Возврат disc status: 0
3.
Возврат drive status: 4
Возврат disc status: 101

Что не так?
Как по другому определить состояние лотка.

Заранее благодарен. Владимир.

PS. Проверить программу на другой машине с Linux возможности нет (в радиусе 50
км это единственная машина).
cdctl-0.15 скачанная с сайта разработчика имеет такую же особенность.
Есть подозрение на глючность IDE контроллера

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 11569; Возраст листа: 418; Участников: 1262
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/229640



-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Fri, 17 Sep 2004 00:24:03 +0000 (#229640)