Abort
abort
Функция Ненормальное завершение выполнения программы.
Синтаксис: #include
void abort(void);
Файл, содержащий stdlib.h,process.h прототип
Описание Данная функция выводит сообщение о прекращении работы ("Abnormal program termination") в stderr, и прерывает программу посредством вызова функции _exit с кодом завершения 3.
Возвращаемое Возвращает код завершения 3 в родительский процесс значение или в DOS.
Переносимость Поддерживается в системах UNIX и определена в ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { printf("Вызов функции abort()\n"); abort(); return 0; /* эта точка не достигается */ }
About
О программе Chm4You! | |
Разработчик: Сергей Тарасенко (aka Tarantul) Версия: Chm4You! 1.2.1 Веб-сайт: Почта: Компилятор: hhc.exe 4.78.8702.0 (Microsoft) Динамическая библиотека: hha.dll 4.78.8702.0 (Microsoft) Декомпилятор: hh.exe 4.78.8702.0 (Microsoft) |
Abs
abs
Функция Возвращает абсолютное значение целого числа.
Синтаксис Версия для вещественных Версия для комплексных #include #include
int abs(int x); double abs(complex x);
Файл, содержащий Версия для вещественных Версия для комплексных прототип math.h, stdlib.h complex.h
Описание Функция abs возвращает абсолютное значение целого аргумента x. Если функция abs вызывается при под- ключенном файле stdlib.h, abs будет восприниматься как макрокоманда, которая расширяется до встроен- ного кода.
Если вы используете функцию abs вместо макрокоманды, то включите в вашу программу #undef abs после #include .
Возвращаемое Версия для вещественных чисел функции abs возвращает значение целое значение в диапазоне от 0 до 32767, за исклю- чением того, что аргумент -32768 будет возвращен, как -32768. Комплексная версия abs возвращает зна- чение типа double.
Переносимость Вещественная версия abs доступна в системе UNIX и определена в ANSI C. Комплексная версия abs требует С++ и, скорее всего, непереносима.
Смотрите также
Пример:
#include
#include
int main(void) { int number = -1234;
printf("число: %d абсолютное значение: %d\n",number,abs(number)); return 0; }
Absread
absread
Функция Чтение абсолютных секторов на диске.
Синтаксис #include
int absread(int drive, int nsects, int lsect, void * buffer);
Файл, содержащий dos.h прототип
Описание absread считывает заданные сектора диска. Функция игнорирует логическую структуру диска и не обращают внимание на файлы, блоки FAT или директории.
аbsread читает заданные сектора диска посредст- вом прерывания DOS 0x25.
drive = номер читаемого диска (0=А, 1=В, и т.д.) nsects = количество читаемых секторов lsect = начальный логический номер сектора buffer = адрес памяти, куда считываются данные.
Количество считываемых секторов ограничено суммар- ным размером сегмента памяти, расположенного выше адреса buffer. Таким образом, 64К - максимальный размер области памяти, который может быть обработан за один вызов функции absread.
Возвращаемое При успешном завершении absread возвращает 0. значение При возникновении ошибки, функция возвращает значение -1 и присваивают переменной errno значе- ние регистра AX, получаемое при системном вызове.
Переносимость absread уникальна для DOS.
Смотри также
Пример:
#include
#include
#include
#include
#include
#define SEGSIZE 512
unsigned char buf[SEGSIZE];
int main(void) { int i,j,sector,drive; char str[10]; printf("Введите метку диска:"); gets(str); drive = toupper(str[0])-'A'; printf("Введите номер сектора, который нужно считать:"); gets(str); sector = atoi(str); if(absread(drive,1,sector,&buf)!=0) { perror("Ошибка диска")ж exit(1); } printf("\nДисковод %c Сектор %d\n",'A'+drive,sector); for(i=0; i
Abswrite
abswrite
Функция Запись абсолютных секторов на диск.
Синтаксис #include
int abswrite(int drive, int nsects, int lsect, void * buffer);
Файл, содержащий dos.h прототип
Описание abswrite записывает заданные сектора диска. Функ- ция игнорирует логическую структуру диска и не об- ращает внимание на файлы, блоки FAT или директо- рии.
Примечание. При неверном использовании abswrite может перезаписать файлы, директории или блоки FAT.
аbswrite произвадит запись секторов диска посредс- твом прерывания DOS 0x26.
drive = номер диска, на который производится за- пись (0=А, 1=В, и т.д.) nsects = количество записываемых секторов lsect = начальный логический номер сектора buffer = адрес памяти, откуда ,берутся данные.
Количество записываемых секторов ограничено суммар- ным размером сегмента памяти, расположенного выше адреса buffer. Таким образом, 64К - максимальный размер области памяти, который может быть обработан за один вызов функции abswrite.
Возвращаемое При успешном завершении abswrite возвращает 0. значение При возникновении ошибки, функция возвращает значение -1 и присваивает переменной errno значе- ние регистра AX, получаемое при системном вызове. Более детальную информацию об еrrno смотрите в документации по DOS.
Переносимость abswrite уникальна для DOS.
Смотрите также EW1accessFW0
Функция Определяет возможность доступа к файлу.
Синтаксис #include
int access(const char * filename, int amode);
Файл, содержащий io.h прототип
Описание access проверяет файл c именем filename для определения, существует ли он, может ли он быть прочитан, записан или выполнен.
Список значений параметра amode: 06 проверка разрешения на чтение и запись; 04 проверка разрешения на чтение; 02 проверка разрешения на запись; 01 проверка на выполнение (игнорируется); 00 проверка на существование файла;
Примечание. Под управлением операционной системы DOS все существующие файлы имеют доступ на чтение (amode равен 04), поэтому 00 и 04 дают один и тот же результат. Аналогично, значения 06 и 02 эквивалентны, так как в DOS доступ на запись подразумевает и доступ на чтение.
Если параметр filename является ссылкой на дирек- торию, функция access просто проверяет, существует данная директория или нет.
Возвращаемое Если требуемый способ доступа разрешен, access значение возвращает значение 0, иначе возвращается значение -1 и переменная errno получает одно из следующих значений:
ENOENT - Маршрут или имя файла не найдены EACCES - Отказ доступа.
Переносимость Поддерживается на системах UNIX.
Смотрите также
Пример:
#include
#include
int file_exists(char * filename);
int main(void) { printf("Существует ли файл NOTEXIST.FIL: %s\n", file_exists("NOTEXIST.FIL") ? "Да":"Нет"); }
int file_exists(char * filename) { return (access(filename, 0) == 0); }
Результат: Существует ли файл NOTEXIST.FIL: Нет
Acos
acos
Функция Вычисляет арккосинус.
Синтаксис Версия для вещественных Версия для комплексных #include #include
double acos(double x); complex acos(complex x);
Файл, содержащий Версия для вещественных Версия для комплексных прототип math.h complex.h
Описание acos возвращает арккосинус введенного значения. Ар- гументы acos должны быть в диапазоне от -1 до 1. Иначе acos возвращает NAN и устанавливает errno в
EDOM - Ошибка области определения
Комплексный обратный косинус определяется следующим образом:
acos(z)=-i*log(z+i*sqrt(1-z^2))
Возвращаемое Вещественная версия acos возвращает значение в диа- значение пазоне от 0 до pi. Управление ошибками для этой фун- кции можно изменить с помощью функции matherr.
Переносимость Вещественная версия acos поддерживается в системах UNIX и определена в ANSI C. Комплексная версия acos требует С++ и, скорее всего, непереносима.
Смотрите также , Пример:
#include
#include
int main(void) { double result; double x=0.5; result = acos(x); printf("Арккосинус от %1f равен %1f\n",x,result); return 0; }
Allocmem
allocmem
Функция Выделяет сегмент памяти DOS.
Синтаксис #include
int allocmem(unsigned size, unsigned *segp);
Файл, содержащий dos.h прототип
Описание allocmem для выделения блока свободной памяти использует системный вызов DOS 0x48 и возв- ращает в качестве результата адрес сегмента выде- ленного блока.
size - желаемый размер области памяти в параграфах (параграф равен 16 байт). segp - указатель на слово, которому будет присвоен адрес сегмента нового выделенного блока памяти. Присваивания не происходит, если запрашиваемого количества памяти не имеется в наличии.
Все выделяемые блоки выравниваются по параграфам.
allocmem и malloc не могут использоваться вместе.
Возвращаемое allocmem при успешном завершении возвра- значение щает значение -1. При возникновении ошибки возвращается число (размер в параграфах наибольше- го блока памяти, имеющегося в наличии).
Ошибка, возвращаемая из allocmem, устанавливает _doserrno и глобальную переменную errno в
ENOMEM - Не хватает памяти
Переносимость allocmem уникальна для DOS.
Смотрите также
Пример:
#include
#include
#include
int main(void) { unsigned int size,segp; int stat;
size = 64; /* 64 * 16 = 1024 байта */ stat = allocmem(size,&segp); if(stat == -1) printf("Выделен сегмент памяти по адресу %x\n",segp); else printf("Ошибка! Допустимый максимальный размер = %u\n",stat); return 0; }
Arc
arc
Функция Рисует дугу окружности.
Синтаксис #include
void far arc(int x,int y,int stangle, int endangle,int radius);
Файл, содержащий graphics.h прототип
Описание arc рисует текущим цветом дугу окружности с цент- ром в точке с координатами (x,y) и радиусом radius . Дуга рисуется от угла stangle до угла endangle. Если stangle равен 0 и endangle равен 360, функция arc нарисует полную окружность.
Угол для arc отсчитывается против часовой стрелки, где 0 градусов соответствует 3 часам на цифербла- те, 90 градусов - 12 часам и т.д.
Замечание. Параметр linestyle не оказывает воздей- ствие при построении дуг, окружностей, эллипсов и секторов. Используется только параметр thickness.
Замечание. Если вы используете CGA в режиме высо- кого разрешения или монохромный графический адап- тер, примеры на использование графических функций, приведенные в этой книге, могут не дать ожидаемого результата. Если ваша система работает на CGA или монохромном адаптере, передайте значение 1 тем функциям, которые изменяют цвет закрашивания или рисования, (например, setcolor, setfillstyle и setlinestyle) вместо символической константы цвета (определенной в graphics.h).
Возвращаемое Нет. значение
Переносимость Эта функция уникальна для Turbo C++. Она работа- ет только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддержи- вающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int midx,midy; int stangle = 45,endangle = 135; int radius = 100;
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } midx = getmaxx() / 2; midy = getmaxy() / 2; setcolor(getmaxcolor(1));
/* рисует дугу */ arc(midx,midy,stangle,endangle,radius);
/* очистка */ getch(); closegraph(); return 0; }
Arg
arg
Функция Возвращает угол числа на комплексной плоскости.
Синтаксис #include
double arg(complex x);
Файл, содержащий complex.h прототип
Описание arg возвращает в радианах угол числа на комплекс- ной плоскости. Положительное направление вещественной оси имеет угол 0, а положительное направление мнимой оси имеет угол Pi. Если аргумент, передаваемый функ- ции, равен комплексному 0 (ноль), то arg возвраща- ет 0.
Возвращаемое arg(x) возвращает atan2(imag(x),real(x)). значение
Переносимость Функции комплексных чисел требуют С++ и поэтому не- переносимы.
Смотри также
Пример:
#include
#include
int main(void) { double x = 3.1, y = 4.2; complex z = complex(x,y); cout
Asctime
asctime
Функция Преобразует дату и время в код ASCII.
Синтаксис #include
char * asctime(const struct tm * tblock);
Файл, содержащий time.h прототип
Описание asctime преобразует время, содержащееся в виде структуры в *tblock, в 26-символьную строку такой же формы, как и в функции ctime:
Sun Sep 16 01:03:52 1973\n\0
Возвращаемое asctime возвращает указатель на символьную строку, значение содержащую дату и время. Эта строка является стати- ческой переменной, которая изменяет свое значение при каждом вызове функции asctime.
Переносимость Поддерживается в системах UNIX и определена в ANSI C.
Смотрите также
Пример:
#include
#include
#include
int main(void) { struct tm t; char str[80];
/* простейшее заполнение структуры */ t.tm_sec = 1; /* секунды */ t.tm_min = 30; /* минуты */ t.tm_hour = 9; /* часы */ t.tm_mday = 22; /* день месяца */ t.tm_mon = 11; /* месяц */ t.tm_year = 56; /* год не включает век */ t.tm_wday = 4; /* день недели */ t.tm_yday = 0; /* не отображается в asctime */ t.tm_isdst = 0; /* летнее время, не отобра- жается asctime */ /* преобразование структуры в строку оканчиваю- щуюся нулем */ strcopy(str,asctime(&t)); printf("%s\n",str); return 0; }
Asin
asin
Функция Вычисляет арксинус.
Синтаксис Версия для вещественных Версия для комплексных #include #include
double asin(double x); complex asin(complex x);
Файл, содержащий Версия для вещественных Версия для комплексных прототип math.h complex.h
Описание Версия asin для вещественных чисел возвращает арк- синус введенного значения. Аргументы функции asin должны находиться в диапазоне от -1 до 1, в про- тивном случае asin возвращает NAN и устанавливает errno в
EDOM - Ошибка области определения.
Комплексный арксинус определяется следующим обра- зом:
asin(z) = -i*log(i*z+sqrt(1-z^2))
Возвращаемое Вещественная версия asin возвращает значение в диа- значение пазоне от -pi/2 до pi/2. Обработку ошибок для этой функции можно изменить с помощью функции matherr.
Переносимость Поддерживается в системах UNIX и определена в ANSI C. Комплексная версия asin требует С++ и скорее всего непереносима.
Смотрите также ,
Пример:
#include
#include
int main(void) { double result; double x = 0.5; result = asin(x); printf("Арксинус от %1f равен %1f\n",x,result); return 0; }
Assert
assert
Функция Проверяет условия и возможность прерывания выполне- ния программы.
Синтаксис #include
void assert(int test);
Файл, содержащий assert.h прототип
Описание Функция assert представляет собой макрокоманду, которая расширяется до оператора if; если параметр test принимает нулевое значение, то assert прерыва- ет программу (при помощи вызова abort) и выводит сообщение в stderr.
assert выводит следующее сообщение:
Assertion failed: , file , line
Позиции filename и linenum, перечисленные в сообще- нии, являются именем исходного файла и номером строки программы, в которой появляется макрокоманда assert.
Если в исходный код программы вы вставите перед оператором #include оператор #define NDEBUG ("без отладки"), то функция assert будет воспринята как комментарий.
Возвращаемое Нет. значение
Переносимость Данная макрокоманда поддерживается на некоторых системах UNIX, включая Systems III и V, совместима с ANSI C.
Смотрите также
Пример:
#include
#include
#include
struct ITEM { int key; int value; };
/* Добавление элемента в список. Проверка, является ли элемент ненулевым */
void additem(struct ITEM *itemptr) { assert(itemptr != NULL); /*... добавление элемента ... */ }
int main(void) { additem(NULL); return 0; }
Результат Assertion failed: itemptr != NULL, file C:\TC\ASSERT.C, line 12
Atan
atan
Функция Вычисляет арктангенс.
Синтаксис Версия для вещественных Версия для комплексных #include #include
double atan(double x); complex atan(complex x);
Файл, содержащий Версия для вещественных Версия для комплексных прототип math.h complex.h
Описание atan возвращает арктангенс введенного значения.
Комплексный арктангенс определяется следующим обра- зом:
atan(z) = -0.5*i*log((1+i*z)/(1-i*z))
Возвращаемое Вещественная версия atan возвращает значение в диа- значение пазоне от -pi/2 до pi/2. Обработку ошибок для этой функции можно изменить с помощью функции matherr.
Переносимость Вещественная версия atan поддерживается в системах UNIX и определена в ANSI C. Комплексная версия требует С++ и, скорее всего, непереносима.
Смотрите также , Пример:
#include
#include
int main(void) { double result; double x = 0.5; result = atan(x); printf("Арктангенс от %1f равен %1f\n",x,result); return 0; }
atan2
Функция Вычисляет арктангенс от y/x.
Синтаксис #include
double atan2(double y, double x);
Файл, содержащий math.h прототип
Описание atan2 возвращает арктангенс от y/x и производит корректировку результата, даже если результирую- щий угол близок к pi/2 или -pi/2 (x близок к 0).
Если и x и y установлены в 0, то функция устанавли- вает errno в EDOM.
Возвращаемое atan2 возвращает значение в диапазоне от -pi до pi. значение Обработку ошибок для этой функции можно изменить с помощью функции matherr.
Переносимость Поддерживается в системах UNIX и определена в ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { double result; double x = 90.0,y = 15.0; result = atan2(x,y); printf("Арктангенс от отношения %1f равен %1f\n",(x/y),result); return 0; }
Atexit
atexit
Функция Регистрирует функцию завершения работы.
Синтаксис #include
int atexit(atexit_t func)
Файл, содержащий stdlib.h прототип
Описание Функция atexit регистрирует функцию, указателем которой является переменная func, как функцию вы- хода из программы. При нормальном завершении прог- раммы функция exit вызывает функцию (*func)() пе- ред возвратом в операционную систему.
Каждый вызов функции atexit регистрирует разные функции выхода. Может быть зарегистрировано до 32 функций. Они выполняются в следующем порядке - последняя регистрируемая выполняется первой.
Возвращаемое Функция atexit возвращает 0 при успешном заверше- значение нии и ненулевое значение при неудачном завершении (не остается памяти, чтобы регистрировать функ- цию).
Переносимость atexit совместима с ANSI C.
Смотрите также ..
Пример:
#include
#include
void exit_fnl(void) { printf("Функция выхода 1\n"); } void exit_fn2(void) { printf("Функция выхода 2\n"); }
int main(void) { /* послать функцию выхода */ atexit(exit_fn1); /* послать функцию выхода */ atexit(exit_fn2); printf("Завершение main ...\n"); return 0; }
Atof
atof
Функция Преобразует строку в число с плавающей точкой.
Синтаксис #include
double atof(const char * s);
Файл, содержащий math.h, stdlib.h прототип
Описание Функция atof преобразует символьную строку, адресный указатель которой находится в аргументе s, в число с двойной точностью (тип double); дан- ная функция распознает символьное представление числа с плавающей точкой следующего вида:
- необязательная строка табуляции и пробелов; - необязательный знак; - строку цифр и необязательную десятичную точку (цифры могут находиться с обеих сторон от точки) - необязательные символы e или E, за которыми сле- дует необязательное целое со знаком
Символы должны соответствовать следующему формату:
[пробелы] [знак] [ddd] [.] [ddd] [e|E[знак]ddd]
atof также распознает +INF и -INF для плюс и минус бесконечности, +NAN и -NAN для нечисловых значений.
Эта функция прекращает преобразование на первом не- распознаваемом символе.
strtod аналогична atof; она дает лучшее распознава- ние ошибок, и поэтому в некоторых случаях предпочти- тельнее.
Возвращаемое atof возвращает преобразованное значение значение входной символьной строки.
В случае переполнения atof возвращает положитель- ное или отрицательное значение HUGE_VAL, глобаль- ная переменная errno устанавливается в ERANGE и функция matherr не вызывается.
Переносимость Поддерживается в системах UNIX и определена в ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { float f; char *str = "12345.678"; f = atof(str); printf("строка = %s значение = %5.3f\n",str,f); return 0; }
Atoi
atoi
Функция Преобразует строку в целое число.
Синтаксис #include
int atoi(const char *s);
Файл, содержащий stdlib.h прототип
Описание Функция atoi преобразует символьную строку, адресный указатель которой находится в аргументе s, в число типа int; данная функция распознает (в следующем порядке):
- необязательную строку табуляции и пробелов; - необязательный знак; - строку цифр.
Символы должны соответствовать следующему формату:
[пробелы] [знак] [ddd]
Эта функция прекращает преобразование на первом не- распознаваемом символе.
atoi не отслеживает переполнение.
Возвращаемое atoi возвращает преобразованное значение значение входной символьной строки. Если строка не может быть преобразована в число соответствующего типа (int), то возвращаемое значение равно 0.
Переносимость Поддерживается в системах UNIX и определена в ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { int n; char *str = "12345"; n = atoi(str); printf("строка = %s целое = %d\n",str,n); return 0; }
Atol
atol
Функция Преобразует строку в число типа long.
Синтаксис #include
long atol(const char * s);
Файл, содержащий stdlib.h прототип
Описание Функция atol преобразует символьную строку, адресный указатель которой находится в аргументе s, в число типа long. Данная функция распознает в следующем порядке:
- необязательную строку табуляции и пробелов; - необязательный знак; - строку цифр.
Символы должны соответствовать следующему формату:
[пробелы] [знак] [ddd]
Эта функция прекращает преобразование на первом не- распознаваемом символе.
atol не отслеживает переполнение (результат не опре- делен).
Возвращаемое atol возвращает преобразованное значение значение входной символьной строки. Если строка не может быть преобразована в число соответствующего типа (long), то возвращаемое значение равно 0.
Переносимость Поддерживается в системах UNIX и определена ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { int n; char *str = "12345"; n = atoi(str); printf("строка = %s целое = %d\n",str,n); return 0; }