Финал[Y81] [n2k82]
В листинге 2.25Ниже приведен законченный примерм использования корректирующих кодов на практике, пригодный для решения реальных практических задач.
Листинг 21.25. Пример вызова функций библиотеки ElByECC.DLL из своей программы
/*----------------------------------------------------------------------------
*
* демонстрация ElByECC.DLL
* ========================
*
* данная программа демонстрирует работу с библиотекой ElByECC.DLL,
* генерируя избыточные коды Рида-Соломона на основе пользовательских данных,
* затем умышленно искажает их и вновь восстанавливает.
* количество разрушаемых байтов передается в первом параметре командной
* строки (по умолчанию - 6)
----------------------------------------------------------------------------*/
#include <stdio.h>
#include "ElByECC.h" // декомпилировано МЫЩЪХем
#define _DEF_DMG 6 // рушить по умолчанию
#define N_BYTES_DAMAGE ((argc>1)?atol(argv[1]):_DEF_DMG) // сколько байт
// рушить?
main(int argc, char **argv)
{
int a;
char stub_head[HEADER_SIZE]; // заголовок сектора
char user_data[USER_DATA_SIZE]; // область польз. данных
struct RAW_SECTOR_MODE1 raw_sector_for_damage; // сектор для искажений
struct RAW_SECTOR_MODE1 raw_sector_for_compre; // контрольная копия сект.
// TITLE
//------------------------------------------------------------------------
printf("= ElByECC.DLL usage demo example by KK\n");
// инициализация пользовательских данных
//------------------------------------------------------------------------
printf("user data initialize...............");
for (a = 0; a < USER_DATA_SIZE; a++) user_data[a] = a; // user_data init
memset(stub_head, 0, HEADER_SIZE); stub_head[3] = 1; // src header init
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий