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

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

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

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

IT-новости

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

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

подробнее

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

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

подробнее

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

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

подробнее

    if(ioctl(fd, CDROM_SEND_PACKET, &cgc) < 0) {

           perror("ioctl");

           printf("Sense key - 0x%02x ", sense.sense_key);

           printf("ASC - 0x%02x ", sense.asc);

           printf("ASCQ - 0x%02x ", sense.ascq);

 

           return -1;

    }

 

/* Определяем размер данных TOC */

    memcpy(&toc_data_length, data_buff, 2);

    toc_data_length = __swab16(toc_data_length);

    printf("TOC data length - %d ", toc_data_length);

 

/* Вычисляем число записей в содержимом TOC (cм. рис.13) */

    toc_entries = (toc_data_length - 2)/11;

    printf("TOC entries - %d ", toc_entries);

 

/* Номер первой и последней сессии */

    printf("First: %d ", data_buff[2]);

    printf("Last: %d ", data_buff[3]);

 

/* Выделяем память для данных TOC, размер этих данных уже точно известен */

    t = (struct toc *)malloc(toc_data_length);

    memset((void *)t, 0, toc_data_length);

 

/* Копируем данные TOC из буфера data_buff и освобождаем выделенную под него память */

    memcpy((void *)t, data_buff + 4, toc_data_length);

    free(data_buff);

 

/* Отображаем результаты чтения TOC */

    printf("Entry Session Point Min Sec Frame PMin Psec PFrame LBA ");

 

    for(i = 0; i < toc_entries; i++) {

           printf("%d ", i);

           printf("%d ", (t + i)->snum);

           printf("%X ", (t + i)->point);

           printf("%d ", (t + i)->min);

           printf("%d ", (t + i)->sec);

           printf("%d ", (t + i)->frame);

           printf("%d ", (t + i)->pmin);

           printf("%d ", (t + i)->psec);

           printf("%d ", (t + i)->pframe);

 

/* Пересчитываем координаты из MSF в LBA при помощи макроса MSF2LBA */

    #define MSF2LBA(Min, Sec, Frame) (((Min * 60 + Sec) * 75 + Frame) - 150)

 

           lba = MSF2LBA((t + i)->pmin, (t + i)->psec, ї

                 (t + i)->pframe);

           printf("%u ", lba);

    }

    free(t);

    return 0;

}

Полный листинг программы чтения TOC находится в файле IOCTL/read_toc_full.c.

Устанавливаем в устройство компакт-диск, на котором создано 2 сессии, и запускаем на выполнение программу read_cd_full. Вывод направим в файл toc:

# ./read_cd_full > toc

В результате в файле toc будут собраны данные Q-субканалов всех Lead-In областей компакт-диска:

TOC data length - 123

TOC entries - 11

First: 1      Last: 2


Предыдущая страницаОглавлениеСледующая страница
 
[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