The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Программное определение списка CD-ROM в Linux"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Программное определение списка CD-ROM в Linux"
Сообщение от Dimich emailИскать по авторуВ закладки(ok) on 08-Ноя-04, 16:03  (MSK)
Приветствую!

Каким образом можно получить список доступных устройств CD-ROM в Linux? Вернее, нужно получить их пути (/dev/hd...). Мне посоветовали сделать так:

int fd;
char Device[11];
struct cdrom_volctrl cdct;
for (unsigned char i=0;i<4;i++)
{
sprintf(Device,"/dev/hd%c/",'a'+i);
if ((fd=open(Device,O_RDONLY))!=-1)
  {
   if (ioctl(fd,CDROMVOLREAD,&cdct)!=-1)
    {
     // Это CD-ROM
    }
   close(fd);
  }
}

Но это работает только когда в устройство вставлен компакт-диск. А можно ли как-нибудь определить CD-ROM'ы без необходимости вставлять в них CD?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Программное определение списка CD-ROM в Linux"
Сообщение от hatta Искать по авторуВ закладки(ok) on 09-Ноя-04, 11:54  (MSK)
/proc/sys/dev/cdrom/info - по-моему инфу про сидиромы лучше всего искать там.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Программное определение списка CD-ROM в Linux"
Сообщение от Bob Искать по авторуВ закладки(??) on 09-Ноя-04, 12:29  (MSK)
>Приветствую!
>
>Каким образом можно получить список доступных устройств CD-ROM в Linux? Вернее, нужно
>получить их пути (/dev/hd...). Мне посоветовали сделать так:
>
>int fd;
>char Device[11];
>struct cdrom_volctrl cdct;
>for (unsigned char i=0;i<4;i++)
>{
> sprintf(Device,"/dev/hd%c/",'a'+i);
> if ((fd=open(Device,O_RDONLY))!=-1)
>  {
>   if (ioctl(fd,CDROMVOLREAD,&cdct)!=-1)
>    {
>     // Это CD-ROM
>    }
>   close(fd);
>  }
>}
>
>Но это работает только когда в устройство вставлен компакт-диск. А можно ли
>как-нибудь определить CD-ROM'ы без необходимости вставлять в них CD?

Попробуй при открытии устройства добавить ключ O_NONBLOCK:
fd=open(Device,O_RDONLY|O_NONBLOCK);

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру