CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
matherr
MATHERR #include <math.h> int matherr(x); struct exception *x; информация о математических исключениях Описание. Функция matherr обрабатывает ошибки, порожденные функциями математической библиотеки. Математические функции вызывают matherr, когда обнаружена ошибка. Пользователь может обеспечить различные объявления (определения) для функции matherr, выполняю- щие обработку специальных ошибок. Если в математической процедуре возникла ошибка, matherr вызывается с указателем на следующую структуру (объявленную в <math.h>) как аргумент. struct exeption { int type; char *name; double arg1, arg2, retval; }; Type определяет тип математической ошибки. Он может быть одним из следующих значений, объявленных в <math.h> Значение Его смысл DOMAIN Ошибка области (определения) аргумента. SING Особенность аргумента. OVERFLOW Ошибка диапазона (области) переполнения UNDERFLOW Ошибка диапазона потери значимости. TLOSS Общая потеря значимости. PLOSS Частичная потеря значимости. Элемент структуры name является указателем на строку, окан- чивающуюся нулевым символом и содержащую имя функции, вызвавшей ошибку. Элементы структуры arg1 и arg2 определяют значения, выз- вавшие ошибку. (Если задан только один аргумент, он запоминается в arg1). Для заданной ошибки по умолчанию возвращается значение retval. Это значение можно изменить. По возвращаемому значению можно определить, действительно или нет возникла ошибка. Если matherr возвращает 0, высвечивается сообщение об ошибке и errno устанавливается в приблизительное значение ошибки. Если matherr возвращает ненулевое значение, сообщение об ошибке не высвечива- ется и errno остается неизменной. Возвращаемое значение. Функция matherr в случае ошибки возвращает 0 и ненулевое значение, если действие верно и успешно выполнено. См.также acos, asin, atan, atan2, bessel, ccabs, cosh, exp, hypot, log, pow, sin, sinh, sqrt, tan. Пример: #include <math.h> #include <string.h> /* вылавливает ошибки в вызовах процедур log и log10. Если ошибка является результатом отрицательного аргумента (ошибка DOMAIN), возвращается log или log10 для абсолютного значения ар- гумента. Появляется сообщение об ошибке. Если ошибка является 0 аргументом или ошибка сгенерирована некоторой другой процедурой, действие выбирается по умолчанию */ int matherr(x) struct exception *x; { if (x->type==DOMAIN) { if(strsmp(x->name,"log")==0\0 { x->retval=log(-(x->arg1)); return(1); } else if(strsmp(x->name,"log10")==0) { x->retval=log10(-(x->arg1)); return(1); } } return(0); /* используется действие по умолчанию */ } _MEMAVL #include <malloc.h> требуется только для объявления функции unsigned int_memavl(); Описание. Функция _memavl возвращает приблизительный размер памяти в байтах, доступной для динамического размещения в умалчиваемом сегменте данных. Эта функция может использоваться с calloc, malloc, realloc в малой и средней моделях памяти и с _nmalloc во всех моделях памяти. Возвращаемое значение. Функция _memavl возвращает размер в байтах как беззнаковое целое. См.также calloc, malloc, _freect, realloc, stackavail. Пример: main() { long *longptr; printf("Memory available before malloc=%u\n", _memavl()); longptr=(long*)malloc(5000*sizeof(long)); printf("Memory available after malloc=%u\n", _memavl()); }