Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

    fd = open(CD_DEVICE, O_RDONLY|O_NONBLOCK);

 

/* Считываем заголовок TOC */

    memset((void *)&hdr, 0, sizeof(struct cdrom_tochdr));

    ioctl(fd, CDROMREADTOCHDR, &hdr);

 

/* Поле cdth_trk0 структуры hdr содержит номер первого трека, а поле cdth_trk1 – номер последнего трека.

 * Отобразим эти значения

 */

    printf("First: %d ", hdr.cdth_trk0);

    printf("Last: %d ", hdr.cdth_trk1);

 

    #define FIRST hdr.cdth_trk0

    #define LAST hdr.cdth_trk1

 

/* Определим формат, в котором мы хотим получить координаты трека. Для этого используется поле cdte_format

 * структуры struct cdrom_tocentry

 */

    toc.cdte_format = CDROM_LBA;

 

/* Задавая в поле cdte_track структуры struct cdrom_tocentry последовательно номера треков от первого до последнего,

 * мы определяем их стартовые координаты в формате LBA

 */

    for(i = FIRST; i <= LAST; i++) {

           toc.cdte_track = i;

           ioctl(fd, CDROMREADTOCENTRY, &toc);

 

    printf("track: %d ", i); // номер трека

           // LBA адрес

           printf("lba: %d ", toc.cdte_addr.lba);

    }

    return 0;

}

Полный листинг программы приведен в файле IOCTL2/get_cd_toc.c.

Рассмотрим программу, которая каждые 2 секунды отслеживает текущее положение оптического элемента, отображает координату текущего сектора (в форматах LBA и MSF) и номер трека.

#define CD_DEVICE "/dev/cdrom"

int main()

{

    int fd, current_track;

 

/* Координаты текущего сектора находятся в Q-субканале. Для чтения данных Q-субканала используется спецификатор

 * CDROMSUBCHNL, считанные данные помещаются в структуру struct cdrom_subchnl (см. <linux/cdrom.h>)

 */

    struct cdrom_subchnl sc;

 

/* Открываем файл устройства */

    fd = open(CD_DEVICE, O_RDONLY|O_NONBLOCK);

 

/* Проверяем тип компакт-диска. Это должен быть Audio-CD */

    if(ioctl(fd, CDROM_DISC_STATUS) != CDS_AUDIO) {

           printf("I need Audio_CD! ");


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160]
[161]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100