Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Функция Процедура обработки ошибок операций с плавающей точкой, модифицируемая пользователем.

 
 Синтаксис          #include <math.h>
 
                    int matherr(struct exception *e);
 
 
 
 Файл, содержащий   math.h
 
 прототип
 
 
 
 Описание           Функция matherr  вызывается  для обработки ошибок,
 
                    генерируемых     функциями      из      библиотеки
 
                    математических функций.
 
 
 
                    matherr служит   в    качестве    пользовательской
 
                    ловушки,   (функции   определяемой  пользователем)
 
                    которую вы можете написать сами (смотрите пример).
 
 
 
                    matherr можно использовать для отслеживания ошибок
 
                    области определения и выхода за пределы диапазона,
 
                    происходящих в  математических  функциях.  Она  не
 
                    отслеживает  исключительных ситуаций,  возникающих
 
                    при  работе  со  значениями  с  плавающей   точкой
 
                    (например  при  делении  на  0).  Для отслеживания
 
                    таких ошибок смотри функцию signal.
 
 
 
                    Вы можете   модифицировать    процедуру    matherr
 
                    специально  для  вашего  случая (то есть она будет
 
                    отлавливать     определенные     типы     ошибок);
 
                    модифицированная функция matherr должна возвращать
 
                    0,  если она не может обработать данную ошибку,  и
 
                    1,  если  ошибка успешно обработана.  Если функция
 
                    matherr возвращает ненулевое  значение,  сообщение
 
                    об  ошибке  не  печатается,  и переменная errno не
 
                    изменяется.
 
 
 
                    Ниже приведена структура exception (определенная в
 
                    файле math.h):
 
 
 
                    struct exception {
 
                    int type;
 
                    char *Function;
 
                    double arg1, arg2, retval;
 
                    };
 
 
 
                    Составные части   структуры  exception  обозначают
 
                    следующее:


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS