Labs
labs
Функция Возвращает абсолютное значение длинного целого числа.
Синтаксис #include
long int labs(long int x);
Файл, содержащий math.h, stdlib.h прототип
Описание labs вычисляет абсолютное значение параметра х.
Возвращаемое Возвращает абсолютное значение х.
Переносимость labs доступна в системах UNIX и поддерживается стандартом ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { long result; long x = -12345678L; result = labs(x); printf("число: %ld, абсолютное значение :%ld\n", x,result); return 0; }
Ldexp
ldexp
Функция Вычисляет значение x * 2^exp.
Синтаксис #include
double ldexp(double x, int exp);
Файл, содержащий math.h прототип
Описание ldexp вычисляет значение двойной точности x*2^exp.
Возвращаемое При успешном завершении ldexp возвращает значение вычисленное значение x*2^exp.
Обработку ошибок для ldexp можно изменить с помощью функции matherr.
Переносимость Функция ldexp поддерживается в системе UNIX и стандартом ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { double valus; double x = 2; /* ldexp возводит 2 в степень 3, и затем умножает результат на 2 */ value = ldexp(x); printf("значение ldexp = %lf\n",value); return 0; }
Ldiv
ldiv
Функция Деление двух длинных целых, возвращает частное и остаток.
Синтаксис #include
ldiv_t ldiv(long int numer, long int denom);
Файл содержащий stdlib.h прототип
Описание ldiv делит два длиных целых и возвращает частное и остаток в структуре типа ldiv_t. Параметры numer и denom - это частное и делитель соответственно. Тип ldiv_t определен в файле stdlib.h (с помощью оператора typedef) следующим образом:
typedef struct { long int quot; /* частное */ long int rem; /* остаток */ } ldiv_t;
Возвращаемое ldiv возвращает структуру, элементы
Переносимость ldiv поддерживается стандартом ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { ldiv_t lx; lx = ldiv(100000L, 30000L); printf("100000 div 30000 = %ld, остаток = %ld\n", lx.quot, lx.rem); return 0; }
Lfind
lfind
Функция Выполняет линейный поиск.
Синтаксис #include
void *lfind(const void *key, const void *base, size_t *num, size_t width, int(*fcmp)(const void *,const void *));
Файл, содержащий stdlib.h прототип
Описание lfind производит линейный поиск по значению key в массиве последовательных записей. Она использует определенную пользователем программу сравнения (fcmp).
Массив описывается как как содержащий *num записей, каждая шириной width байт. base указывает начало массива.
lfind возвращает адрес первого, совпада- ющего с искомым, элемента. Если совпаданий не обнаружено, то lfind возвращает NULL. Подпрограмма сравнения должна возвращать 0 если *elem1 == *elem2, и ненулевое значение в противном случае.(elem1 и elem2 это ее параметры).
Переносимость lfind уникальна для DOS.
Смотрите также
Пример:
#pragma warn -rpt #include
#include
int compare(int *x,int *y) { return(*x-*y); } int main(void) { int array[5] = {35,87,46,99,12}; int key; int *result; key = 99; result = lfind(&key,array,5,sizeof(int),compare); if(result) printf("Число %d найдено",key); else printf("Число %d ненайдено",key); return 0; }
Line
line
Функция Рисует линию между двумя указанными точками.
Синтаксис #include
void far line(int x1, int y1, int x2, int y2);
Файл, содержащий graphics.h прототип
Описание line рисует линию, используя текущие цвет, тип и толщину линий, между двумя точками, определенными как (x1, y1) и (x2, y2), не изменяя текущую позицию (CP).
Возвращаемое Нет. значение
Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплей- ными адаптерами, поддерживающими графи- ческий режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int xmax,ymax;
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } setcolor(getmaxcolor()); xmax = getmaxx(); ymax = getmaxy();
/* нарисовать диагональную линию */ line(0,0,xmax,ymax);
/* очистка */ getch(); closegraph(); return 0; }
Linerel
linerel
Функция Рисует линию на заданное расстояние от текущей позиции (CP).
Синтаксис #include
void far linerel(int dx, int dy);
Файл, содержащий graphics.h прототип
Описание linerel рисует линию от CP до точки, находещейся на расстоянии (dx, dy) от CP. CP перемещается на CP + (dx,dy).
Возвращаемое Hет. значение
Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; char msg[80];
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } /* переместить текущую позицию (CP) в точку (20,30) */ moveto(20,30); /* создать строку с сообщением */ sprintf(msg," (%d,%d)",getx(),gety()); outtextxy(20,30,msg); /* нарисовать линию относительно текущей позиции */ linerel(100,100); /* создать строку с сообщением */ sprintf(msg," (%d,%d)",getx(),gety()); outtext(msg);
/* очистка */
getch(); closegraph(); return 0; }
Lineto
lineto
Функция Рисует линию от текущей позиции (CP) в точку с координатами (x,y).
Синтаксис #include
void far lineto(int x, int y);
Файл, содержащий graphics.h прототип
Описание lineto рисует линию от CP до точки с координатами (x,y), затем переносит (CP) в (x,y). Возвращаемое Нет. значение
Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим.
Смотри также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; char msg[80];
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } /* переместить текущую позицию (CP) в точку (20,30) */ moveto(20,30); /* создать строку с сообщением */ sprintf(msg," (%d,%d)",getx(),gety()); outtextxy(20,30,msg); /* нарисовать линию относительно текущей позиции */ lineto(100,100); /* создать строку с сообщением */ sprintf(msg," (%d,%d)",getx(),gety()); outtext(msg);
/* очистка */ getch(); closegraph(); return 0; }
Localeco
localeconv
Функция Возвращает указатель на текущую структуру locale.
Синтаксис #include
struct lconv *localeconv(void);
Файл, содержащий locale.h прототип
Описание Эта функция устанавливает форматы вавода цен и другие числовые форматы. Однако Turbo C++ в настоящее время поддерживает только locale C. Возвращаемое Возвращает указатель на текущую структу- значение ру locale.Дополнительную информацию вы найдете в файле locale.h.
Переносимость localeconv поддерживается стандартом ANSI C.
Смотрите также
Пример:
#include
#include
int main(void)
{ struct lconv ll; struct lconv *conv = ll; /* считать в структуру данные */ conv = localeconv(); /* распечатать содержимое */ printf("Десят тчк : %s\n,conv->desimal_point); printf("Раздел тысяч : %s\n,conv->thousands_sep); printf("Группирование : %s\n,conv->grouping); printf("Меж-ный сим.вал. : %s\n,conv->int_curr_sumbol); printf("$ раздел. тысяч : %s\n,conv->mon_thounsands_sep); printf("$ группирован. : %s\n,conv->mon_grouping); printf("Полож.знак : %s\n,conv->positive_sign); printf("Отрицат.знак : %s\n,conv->negative_sign); printf("Межд.частич.сим. : %d\n,conv->int_frac_digits); printf("Частичные числа : %d\n,conv->frac_digits); printf("Предшест.сим.вал. : %d\n,conv->p_cs_precedes); printf("Раздел.полож.знака : %d\n,conv->p_sep_by_space); printf("Предшест.сим. вал. : %d\n,conv->n_cs_precedes); printf("Раздел.отриц.знака : %d\n,conv->n_sep_by_space); printf("Позиция полож.знака: %d\n,conv->p_sign_posn); printf("Позиция отриц.знака: %d\n,conv->n_sign_posn); return 0; }
Localtim
localtime
Функция Преобразует дату и время в структуру.
Синтаксис #include
struct tm *localtime(const time_t * clock);
Файл, содержащий time.h прототип
Описание localtime получает адрес значения возвращаемого функцией time и возвращает указатель на структуру типа tm, содержащую разделенное время. localtime преобразует время к местной временной зоне и возможно к летнему времени. Глобальная переменная типа long timezone должна содержать разницу в секундах между временем по Гринвичу и местным временем. Глобальная переменная daylight должна быть равна 0, если не используется стандартное летнее время. Структура tm объявленна в time.h следующим образом:
struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; };
Эти элементы содержат время в 24-часовой записи, день месяца 1-31, месяц 1-12, день недели (воскресенье = 0), год - 1900, день года 0-365, и флаг, определяющий действует ли летнее время.
Возвращаемоe localtime возвращает указатель на значение структуру, содержащую разделенное время. Эта структура имеет класс памяти static и перезаписывается при каждом вызове.
Переносимость localtime доступна в системах UNIX и поддерживается стандартом ANSI C.
Смотрите также
Пример:
#include
#include
#include
int main(void) { time_t timer; struct tm *tblock; timer = time(NULL); tblock = localtime(&timer); printf("Местное время: %s",asctime(tblock)); return 0; }
Lock
lock
Функция Блокирует доступ к части файла.
Синтаксис #include
int lock(int handle, long offset, long length);
Файл, содержащий io.h прототип
Описание lock позволяет вам использовать механизм разделения доступа к файлам введенный в DOS 3.x. Перед исполь- зованием этой функции необходимо загрузить SHARE.EXE.
С помощью данной функции можно заблокировать лю- бые неперекрывающиеся области файла. Программа, пытающаяся считывать или записывать в блоки- рованной облясти файла, делает три попытки. Если все три попытки окончились неудачей, то операция заканчивается по ошибке.
Возвращаемое Функция возвращает 0 при успешном значение завершении, и -1 при ошибке.
Переносимость Функция уникальна для систем DOS версий 3.x. Более ранние версии DOS не поддерживают этих вызовов.
Смотрите также
Пример:
#include
#include
#include
#include
#include
#include
int main(void) { int handle,status; long length; /* для поддержки разделения файлов необходимо пред- варительно загрузить SHARE.EXE. */ handle = sopen("c:\\autoexec.bat", O_RDONLY, SH_DENYNO, S_IREAD); if(!handle) { printf("Ошибка при операции sopen"); exit(1); } length = filelength(handle); status = lock(handle,0L,length/2); if(status == 0) printf("Успешная операция блокировки"); else printf("Ошибка при операции блокировки"); status = unlock(handle,0L,length/2); if(status == 0) printf("Успешная операция разблокировки"); else printf("Ошибка при операции разблокировки"); close(handle); return 0; }
Log
log
Функция Вычисляет натуральный логарифм ln(x).
Синтаксис Версия для вещественных Версия для комплексных #include #include
double log(double x); complex log(complex x);
Файл, Версия для вещественных Версия для комплексных содерж. math.h complex.h прототип
Описание log вычисляет натуральный логарифм от х.
Натуральный логарифм для комплексных чисел определяетя следующим образом:
log(z) = log(abs(z)) + i arg(z)
Возвращаемое При успешном завершении log возвращает значение вычисленное значение (ln(x)). Если аргумент х передаваемый функции log меньше 0, то глобальной переменной errno присваивается значение:
EDOM - Ошибка области определения.
log(0) возвращает значение обратное HUGE_VAL иприсваивает глобальное переменной errno значение ERANGE.
Обработку ошибок для данной функции можно изменить с помощью функции matherr.
Переносимость Версия log для вещественных чисел доступна в системах UNIX и поддержива- ется стандартом ANSI C. Комплексная версия log требует С++ и, скорее всего не переносима.
Смотрите также 0,
Пример:
#include
#include
int main(void) { double result; double x = 8.6872; result = log(x); printf("Нат.логарифм от %lf равен %lf\n",x,result); return 0; }
log10
Функция Вычисляет десятичный логарифм log10(x).
Синтаксис Версия для вещественных Версия для комплексных #include #include
double log10(double x); complex log10(complex x);
Файл, Версия для вещественных Версия для комплексных содерж math.h complex.h прототип
Описание log10 вычисляет десятичный логарифм от х.
Десятичный логарифм комплексного числа определя- ется следующим образом:
log10(z) = log(z)/log(10)
Возвращаемое При успешном завершении log10 возвращает значение вычисленное значение (log10(x)). Если аргумент х передаваемый функции log10 меньше 0, то глобальной переменной errno присва- ивается значение:
EDOM - Ошибка области определения.
log10(0) возвращает значение обратное HUGE_VAL.
Обработку ошибок для данной функции можно изменить с помощью функции matherr.
Переносимость Версия log10 для вещественных чисел доступна в системах UNIX и поддерживается стандартом ANSI C. Комплексная версия log10 требует С++ и поэтому скорее всего не переносима.
Смотрите также
Пример:
#include
#include
int main(void) { double result; double x = 800.6872; result = log10(x); printf("Десятичный логарифм от %lf равен %lf\n",x,result); return 0; }
Longjmp
longjmp
Функция Выполняет нелокальный переход.
Синтаксис #include
void longjmp(jmp_buf jmpb, int retval);
Файл, содержащий setjmp.h прототип
Описание Вызов функции longjmp восстанавливает состояние задачи, которое было установлено при последнем вызове функции setjmp с аргументом jmpb. Затем она возвращает значение retval также,как и функ- ция setjmp.
Cостояние задачи представляет собой следующее:
- все сегментные регистры (CX,DS,ES,SS); - переменные-регистры (SI,DI); - указатель стека (SP); - указатель базы (BP); - флаги.
Состояние задачи является достаточно полным, так что функции setjmp и longjmp могут быть использо- ваны как инструмент для организации сопрограмм. Данные подпрограммы могут быть полезны для работы с ошибками и исключительными ситуациями, происхо- дящими в низкоуровневых подпрограммах прикладных программ.
Перед использованием функции longjmp необходимо вызвать функцию setjmp. Программа вызывающая setjmp и устанавливающая jmpb должна оставаться активной и не должна возвращать управления до вы- зова longjmp. Если это случится, то результат непредсказуем.
longjmp не может посылать значение 0. Если 0 по- сылается в retval, то он заменяется на 1.
Примечание. Функции setjmp и longjmp нельзя ис- пользовать для реализации оверлейных программ. Обычно setjmp и longjmp сохраняют и восстананав- ливают все, необходимые для реализации сопрог- рамм, однако для управления оверлеями необходимо следить за стеком, причем подразумевается, что стек один. При реализации сопрограмм вы обычно используете два стека, или две части одного сте- ка, и поэтому администратор оверлеев не сможет корректно их отслеживать.
Вы можете иметь задачи, работающие в фоновом ре- жиме, которые используют свой стек,или свой раз- дел общего стека, однако вы должны быть уверены, что они не используют оверлеев, и вы не должны использовать оверлейные версии setjmp и longjmp для переключения на эти фоновые задачи.
Возвращаемое Нет. значение
Переносимость Функция поддерживаются на системах UNIX и стандартом ANSI C.
Смотрите также
Пример:
#include
#include
int main(void) { jmp_buf jumper; int value; value = setjmp(jumper); if (value != 0) { printf("longjmp со значением %d\n", value); exit(value); } printf("Вызов подпрограммы ... \n"); subroutine(); } subroutine() { longjmp(jumper,l); }
Вывод:
Вызов подпрограммы ... Longjmp со значением l
Lowvideo
lowvideo
Функция Устанавливает низкую интенсивность выводимых символов.
Синтаксис #include
void lowvideo(void);
Файл содержащий conio.h прототип
Описание lowvideo обнуляет бит интенсивности в поле атрибутов текущего цвета символов.
Вызов этой функции не отражается на на тексте, находящемся на экране, а только на результате работы функций, производя- щих вывод в текстовом режиме на консоль, и только после вызова функции liwvideo.
Возвращаемое Нет. значение
Переносимость lowvideo работает только на компьютерах совместимых с IBM PC. Аналогичная функции есть в Turbo Pascal.
Смотрите также
Пример:
#include
int main(void) { clrscr(); lowvideo(); cprintf("Текст низкой интенсивности"); highvideo(); gotoxy(1,2); cprintf("Текст высокой интенсивности"); return 0; }
Lsearch
lsearch
Функция Производит линейный поиск.
Синтаксис #include
void *lsearch(const void *key, void *base, size_t num, size_t width, int(*fcmp)(const void *, const void *));
Файл, содержащий stdlib.h прототип
Описание lsearch производит просмотр таблицы. Т.к. это ли- нейный поиск, то элементы таблицы не должны быть отсортированы, перед вызовом функции lsearch. Ес- ли элемент, на который указывает key, не найден в таблице, то lsearch добавляет его к ней.
base - это указатель на базу (0-ой элемент) таб- лицы.
num - указывает на целое значение, определяющее число элементов в таблице.
key - указывает на искомый элемент.
wight- содержит размер элемента таблицы в байтах.
Аргумент fcmp указывает на программу сравнения написанную пользователем. Она должна сравнивать два элемента и возвращать результат сравнения.
При просмотре таблицы lsearch вызывает программу сравнения, на которую указывает аргумент fcmp.
При каждом вызове программы сравнения lsearch по- сылает ей два ппараметра: key - указатель на ис- комый элемент, и elem - указатель на элемент в таблице.
fcmp может интерпретировать полученные параметры любым путем.
Возвращаемое lsearch возвращает адрес первого элемента в значение таблице, совпадающего с искомым.
Если key совпадает с elem, то fcmp возвращает 0, в противном случае fcmp возвращает ненулевое зна- чение.
Переносимость lsearch доступна в системах UNIX.
Смотрите также
Пример:
#include
#include
#include
/* инициализировать число цветов */ char *color[10] = {"Red","Blue","Green"}; int ncolors = 3;
int colorscmp(char **arg1, char **arg2) { return(strcmp(*arg1,*arg2)); }
int addelem(char *color) { int oldn = ncolors; lsearch(&color, colors, (size_t*)&colors, sizeof(char*), colorscmp); return(ncolors = oldn); }
int main(void)
{ int i; char *key = "Purple";
if(addelem(key)) printf("%s уже в таблице", key); else printf("%s добавлен в таблицу цветов ", "теперь в ней %d цветов",key,ncolors); printf("Цвета:"); for(i=0; i
Lseek
lseek
Функция Перемещает указатель чтения/записи файла.
Синтаксис #include
long lseek(int handle, long offset,int fromwhere);
Файл, содержащий io.h прототип
Описание Функция lseek устанавливает указатель файла, свя- занный с параметром handle, в новую позицию, ко- торая находится на offset байтов относительно местоположения заданного параметром fromwhere. Параметр fromwhere должен иметь одно из трех зна- чений 0, 1 или 2, которые представлены тремя сим- волическими константами (определенными в файле stdio.h) следующим образом: --------------------------------------------------¬ ¦Параметр fromwhere Месторасположение ¦ ¦ в файле ¦ +-------------------------------------------------+ ¦SEEK_SET (0) начало файла ¦ ¦SEEK_CUR (1) текущая позиция указател¦ ¦ файла ¦ ¦SEEK_END (2) конец файла ¦ L--------------------------------------------------
Возвращаемое Функция lseek возвращает значение смещения значение новой y позиции указателя, измеряемой в байтах от начала файла. В случае ошибки функция lseek возвращает значение -1L и глобальная перемен- ная errno получает одно из следующих значений:
EBADF - неверный номер файла; EINVAL - неверный аргумент.
На устройствах, непригодных для поиска, таких, как терминалы и принтеры,возвращаемое значение неопределено.
Переносим. lseek поддерживается на всех системах UNIX.
Смотрите также
Пример:
#include
#include
#include
#include
#include
int main(void) { int handle; char msg[] = "Это тест"; char ch; /* создать файл */ handle = open("TEST.$$$",O_CREAT|O_RDWR,S_IREAD|S_IWRITE); /* вывести в файл данные */ write(handle,msg,strlen(msg)); /* переместить указатель в начало файла */ lseek(handle,0L,SEEK_SET); /* считывать данные из файла, пока не встретим EOF */ do { read(handle,&ch,1); printf("%c",ch); } while(!eof(handle)); close(handle); return 0; }
Ltoa
ltoa
Функция Преобразует длинное целое значение в строку символов.
Синтак. #include
char *ltoa(long value, char *string, int radix);
Файл, сод. stdlib.h прототип
Описание Эта функция преобразует значение value в строку символов, оканчивающуюся нулем, и записывают результат в параметр string. Для функции ltoa значение value - длинное целое.
Параметр radix определяет базис, который будет использован при преобразовании значения value; он должен лежать между 2 и 36 (включительно). Eсли значение value отрицательно, и значение radix 10, первый символ строки string - знак минус (-).
Примечание. Пространство, выделяемое для параметра string должно быть достаточным, чтобы записать полученную в результате работы функции строку, включая нулевой байт (\0). Функция ltoa может возвращать до 33 байтов;
Возвращаемое Функция возвращает указатель на строку значение string.
Переносимость ltoa уникальна для DOS.
Смотрите также
Пример:
#include
#include
int main(void) { char string[25]; long value = 123456789L; ltoa(value,string,10); printf("число = %ld строка: %s\n",value,string); return 0; }