- •Содержание
- •Библиотеки
- •Подпрограммы классификации
- •Подпрограммы преобразования
- •Подпрограммы управления каталогом
- •Подпрограммы диагностики
- •Подпрограммы поддержки графики
- •Подпрограммы ввода/вывода
- •Интерфейсные подпрограммы (dos, 8086, bios)
- •Подпрограммы манипулирования (строками, памятью)
- •Математические подпрограммы
- •Подпрограммы распределения памяти
- •Прочие подпрограммы
- •Подпрограммы управления процессами
- •Cтандартные подпрограммы
- •Подпрограммы отображения текста в окнах
- •Подпрограммы работы со временем и датой
- •Подпрограммы с переменным списком аргументов
- •Environ
- •Errno, _doserrno, sys_errlist, sys_nerr
- •_Heaplen
- •_Osmajor, _osminor
- •_Stklen
- •Timezone
- •_Version
- •Absread
- •Abswrite
- •Allocmem
- •Asctime
- •Bdosptr
- •Bioscom
- •Biosdisk
- •Biosequip
- •Bioskey
- •Biosmemory
- •Biosprint
- •Biostime
- •Bsearch
- •_Clear87
- •Cleardevice
- •Clearerr
- •Closegraph
- •_Control87
- •Coreleft
- •Country
- •Сprintf
- •Creatnew
- •Creattemp
- •Ctrlbrk
- •Delline
- •Detectgraph
- •Difftime
- •Disable
- •Dosexterr
- •Dostounix
- •Drawpoly
- •Ellipse
- •Exec...
- •Farcalloc
- •Farcoreleft
- •Farfree
- •Farmalloc
- •Farrealloc
- •Fcloseall
- •Fgetchar
- •Fgetpos
- •Filelength
- •Fillellipse
- •Fillpoly
- •Findfirst
- •Findnext
- •Floodfill
- •Flushall
- •Fnmerge
- •Fnsplit
- •_Fpreset
- •Fprintf
- •Fputchar
- •Freemem
- •Freopen
- •Fsetpos
- •Geninterrupt
- •Getarccoords
- •Getaspectratio
- •Getbkcolor
- •Getcbrk
- •Getchar
- •Getcolor
- •Getcurdir
- •Getdate
- •Getdefaultpalette
- •Getdfree
- •Getdisk
- •Getdrivername
- •Getfatd
- •Getfillpattern
- •Getfillsettings
- •Getftime
- •Getgraphmode
- •Getimage
- •Getlinesettings
- •Getmaxcolor
- •Getmaxmode
- •Getmaxx
- •Getmaxy
- •Getmodename
- •Getmoderange
- •Getpallete
- •Getpalettesize
- •Getpass
- •Getpixel
- •Gettext
- •Gettextinfo
- •Gettextsettings
- •Gettime
- •Getvect
- •Getverify
- •Getviewsettings
- •Graphdefaults
- •Grapherrormsg
- •_Graphfreemem
- •_Graphgetmem
- •Graphresult
- •Harderr
- •Hardresume
- •Hardretn
- •Highvideo
- •Imagesize
- •Initgraph
- •Inportb
- •Insline
- •Installuserdriver
- •Installuserfont
- •Intdosx
- •Isalnum
- •Isalpha
- •Isascii
- •Iscntrl
- •Isdigit
- •Isgraph
- •Islower
- •Isprint
- •Ispunch
- •Isspace
- •Isupper
- •Isxdigit
- •Linerel
- •Loсaltime
- •Longjmp
- •Lowvideo
- •Lsearch
- •_Matherr
- •Matherr
- •Memccpy
- •Memicmp
- •Memmove
- •Movedata
- •Moverel
- •Movetext
- •Normvideo
- •Nosound
- •Outport
- •Outportb
- •Outtext
- •Outtextxy
- •Parsfnm
- •Pieslice
- •Putchar
- •Putimage
- •Putpixel
- •Puttext
- •Randbrd
- •Randbwr
- •Randomize
- •Realloc
- •Rectangle
- •Registerbgidriver
- •Registerbgifont
- •Restorecrtmode
- •Searchpath
- •Segread
- •Setactivepage
- •Setallpalette
- •Setaspectratio
- •Setbkcolor
- •Setblock
- •Setcbrk
- •Setcolor
- •Setdate
- •Setdisk
- •Setfillpattern
- •Setfillstyle
- •Setftime
- •Setgraphbufsize
- •Setgraphmode
- •Setlinestyle
- •Setmode
- •Setpalette
- •Setrgbpalette
- •Settextjustify
- •Settextstyle
- •Settime
- •Setusercharsize
- •Setvbuf
- •Setvect
- •Setverify
- •Setviewport
- •Setvisualpage
- •Setwritemode
- •Spawn...
- •Sprintf
- •_Status87
- •Strcmpi
- •Strcspn
- •_Strerror
- •Strerror
- •Stricmp
- •Strncat
- •Strncmp
- •Strncmpi
- •Strncpy
- •Strnicmp
- •Strnset
- •Strpbrk
- •Strrchr
- •Strtoul
- •Textattr
- •Textbackground
- •Textcolor
- •Textheight
- •Textmode
- •Textwidht
- •Tmpfile
- •Toascii
- •_Tolower
- •Tolower
- •_Toupper
- •Toupper
- •Ungetch
- •Unixtodos
- •Vfprintf
- •Vfscanf
- •Vprintf
- •Vsprintf
- •Vsscanf
Asctime
-----------------------------------------------------------------
НазначениеПреобразует date и time в формат ASCII.
Синтаксис #include<time.h>
char *asctime(struct tm *tm);
Прототип вtime.h
Замечанияasctime - преобразует время, хранимое в виде
структуры, в 26-символьную строку той
же формы, что и функция ctime:
Sun Oct 05 01:03:52 1963\n\0
Возвращаемоеasctime возвращает указатель на строку,
значениесодержащую дату и время. Эта строка является
статической переменной и переписывается при
каждом вызове.
ПереносимостьФункция доступна в системах UNIX и совместима с
ANSI Си.
Смотри также ctime, difftime, ftime,gmtime, localtime,
stime, time, tzset
Пример
#include<stdio.h>
#include<time.h>
main ()
{
stuct tm *tm_now;
time_t secs_now;
char *str_now;
time(&secs_now); /* в секундах */
str_now = ctime(&secs_now); /* сделать
строкой */
printf("Число секунд с 1 января 1970 г. = "
" %ld\n", secs_now);
printf("Другими словами, сейчас %s\n",
str_now);
tm_now = localtime(&secs_now); /* сделать
структуру */
printf("По структуре: %d %02d-%02d-%02d "
" %02d:%02d.%02d\n",
tm_now->tm_yday, tm_now->tm_mon,
tm_now->tm_mday, tm_now->tm_year,
tm_now->tm_hour, tm_now->tm_min,
tm_now->tm_sec);
/* от структуры к строке */
str_now = asctime(tm_now);
printf(Еще раз, сейчас %s\n", str_now);
}
Результат выполнения программы
Число секунд с 1 января 1970 г. = 315594553
Другими словами, сейчас Tue Jan 01 12:09:13 1980
По структуре: 0 00-01-80 12:09:13
Еще раз, сейчас Tue Jan 01 12:09:13 1980
-----------------------------------------------------------------
asin
-----------------------------------------------------------------
НазначениеВычисление арксинуса.
Синтаксис#include<math.h>
double asin(double x);
Прототип в math.h
ЗамечанияФункция возвращает арксинус входного параметра.
Аргумент функции должен иметь значение в диапа-
зоне от -1 до 1. Если аргумент выходит за ука-
занные границы, функция asin возвращает значе-
ние 0 и устанавливает значение переменной errno
в
EDOM аргумент не входит в область
определения функции.
Возвращаемоеasin возврашает значение в диапазоне от 0 до
значениеpi.
Обработчик ошибок для этой функции может быть
модифицирован с помощью функции matherr.
ПереносимостьФункция доступна в системах типа UNIX и совмес-
тима с ANSI Си.
Смотри такжеacos, atan, atan2, cos, cosh, matherr, sin,
sinh, tan, tanh
-----------------------------------------------------------------
assert
-----------------------------------------------------------------
НазначениеПроверяет условия и завершение, при необходимо-
сти, программы.
Синтаксис#include<assert.h>
#include<stdio.h>
void assert (int test);
Прототип вassert.h
Замечанияassert представляет собой макрос, расширяемый
в оператор if; если выражение test в полученном
расширении ложно, то assert печатает сообщение
и прекращает выполнение программы (через обра-
щение к abort).
Сообщение, которое распечатывает assert, имеет
вид:
Assertion failed:<условие>, file<имя-файла>,
line<номер строки>
<имя файла> и <номер строки>, используемые в
этом сообщении, представляет собой имя исходно-
го файла и номер строки, в которой находится
макрос assert.
Если же в исходном тексте перед директивой
#include<assert.h> вы поместили директиву
#define NDEBUG ("не отладка"), то работа опера-
тора assert отменяется.
ВозвращаемоеНет.
значение
Совместимость Данный макрос доступен на некоторых UNIX - сис-
темах, включая System III и V, а также совмес-
тим с ANSI Си.
Смотри такжеabort
Пример
/* ASSERT.C: добавляет один элемент в список,
проверяя затем, чтобы он не был равен NULL */
#include<assert.h>
#include<stdio.h>
struct ITEM {
int key;
int value;
};
void additem (struct ITEM *itemptr)
{
assert (itemptr !=NULL);
/* это строка 13 */
/* ...добавить элемент... */
}
main ()
{
additem (NULL);
}
Результат выполнения программы
Assertion failed:itemptr !=NULL, file C:
\TURBOC\ASSERT.C, line 13
----------------------------------------------------------------
atan
----------------------------------------------------------------
НазначениеВычисление арктангенса.
Синтаксис#include<math.h>
double atan(double x);
Прототип в math.h
ЗамечанияФункция возвращает арктангенс входного
параметра.
Возвращаемоеatan возврашает значение в диапазоне от -pi/2
значениедо pi/2.
Обработчик ошибок для этой функции может быть
модифицирован с помощью функции matherr.
ПереносимостьФункция доступна в системах типа UNIX и совмес-
тима с ANSI Си.
Смотри также acos, asin, atan2, cos, cosh, matherr, sin,
sinh, tan, tanh
----------------------------------------------------------------
atan2
----------------------------------------------------------------
НазначениеВычисление арктангенса y/x.
Синтаксис #include<math.h>
double atan2(double y, double x);
Прототип вmath.h
ЗамечанияФункция возвращает арктангенс значения y/x и
позволяет получить более точный результат (чем
функция atan), когда результирующий угол близок
к pi/2 или -pi/2 (значение x достаточно мало).
Если значения x и y равны 0, функция устанавли-
вает значение переменной errno в EDOM.
Возвращаемоеatan2 возврашает значение в диапазоне от -pi
значениедо pi.
Обработчик ошибок для этой функции может быть
модифицирован с помощью функции matherr.
ПереносимостьФункция доступна в системах типа UNIX и совмес-
тима с ANSI Си.
Смотри также acos, asin, atan, cos, cosh, matherr, sin,
sinh, tan, tanh
----------------------------------------------------------------
atexit
----------------------------------------------------------------
НазначениеОпределение функции завершения.
Синтаксис #include<stdlib.h>
int atexit(atexit_t func)
Прототип вstdlib.h
Замечанияatexit фиксирует функцию, на которую указывает
func, в качестве функции завершения.
При нормальном завершении программы функция
exit вызывает *func (без аргументов) прямо пе-
ред возвращением в операционную систему. Выз-
ванная функция относится к типу atexit_t, кото-
рая определена через typedef в stdlib.h.
Каждое обращение к atexit фиксирует новую функ-
цию выxода. Максимально может быть зафиксирова-
но до 32 функций, которые будут выполнены в по-
рядке LIFO ("первый пришел, последний ушел").
Возвращаемоеatexit возвращает 0 в случае успеxа и не 0 при
значениеошибке (нет места для фиксации функции).
ПереносимостьФункция совместима с ANSI Си.
Смотри также abort, _exit, exit, spawn...
Пример
#include<stdlib.h>
#include<stdio.h>
atexit_t exit_fn1(void)
{
printf("Вызвана функция выхода 1\n");
}
atexit_t exit_fn2(void)
{
printf("Вызвана функция выхода 2\n");
}
main()
{
atexit(exit_fn1); /* установить указатель на
exit_fn1 */
atexit(exit_fn2); /* установить указатель на
exit_fn2 */
printf("Выход из main ...\n");
}
Вывод программы
Выход из main ...
Вызвана функция выхода 2
Вызвана функция выхода 1
----------------------------------------------------------------
atof
----------------------------------------------------------------
НазначениеПереводит строку в формат числа с плавающей
точкой.
Синтаксис #include<math.h>
double atof(const char *nptr);
Прототип в math.h, stdlib.h
Замечанияatof преобразует строку, на которую указывает
nptr, в double;
Данная функция распознает:
- необязательную строку из табуляций и пробелов
- необязательный знак
- затем строку цифр и необязательную десятичную
точку (цифры могут располагаться по обе сто-
роны от десятичной точки)
- затем необязательные е или Е, за которыми
следует необязательное знаковое целое.
Строка символов должна иметь следующий общий
формат:
[ws] [sn] [ddd] [.] [ddd] [fmt[sn]ddd]
atof также распознает +INF и -INF, используемые
при обозначении бесконечности (неопределеннос-
ти), а также +NAN и -NAN для обозначения "не
числа".
При обнаружении первого нераспознаваемого сим-
вола, функция прекращает преобразование.
ВозвращаемоеФункция atof возвращает преобразованное из
значениевходной строки число. Если строка не может быть
преобразована в число соответствующего типа,
функция возвращает 0.
При переполнении функция возвращает отрицатель-
ное или положительное значение HUGE_VAL, при
этом обработчик ошибок matherr не вызывается.
Переносимостьдоступна в UNIX системах и совместима с ANSI
Си.
Смотри такжеatoi, atol, ecvt, fcvt, gcvt, strtod
----------------------------------------------------------------
atoi
----------------------------------------------------------------
НазначениеПереводит строку в формат числа типа integer.
Синтаксис integer atoi(const char *nptr);
Прототип вstdlib.h
Замечанияatoi преобразует строку, на которую указывает
nptr, в integer.
Данная функция распознает:
- необязательный знак
- затем строку цифр
Строка символов должна иметь следующий общий
формат:
[ws] [sn] [ddd]
При обнаружении первого нераспознаваемого сим-
вола, функция прекращает преобразование.
Функция atoi не контролирует переполнение.
ВозвращаемоеФункция atoi возвращает преобразованное из
значениевходной строки число. Если строка не может быть
преобразована в число типа integer, то функция
возвращает 0.
Переносимостьдоступна в UNIX системах и совместима с ANSI
Си.
Смотри такжеatof, atol, ecvt, fcvt, gcvt, strtod
----------------------------------------------------------------
atol
----------------------------------------------------------------
НазначениеПереводит строку в формат числа типа long.
Синтаксис long atol(char *nptr)
Прототип вstdlib.h
Замечанияatol преобразует строку, на которую указывает
nptr, в long.
Данная функция распознает:
- необязательный знак
- затем строку цифр
Строка символов должна иметь следующий общий
формат:
[ws] [sn] [ddd]
При обнаружении первого нераспознаваемого сим-
вола, функция прекращает преобразование.
Функция atol не контролирует переполнение.
ВозвращаемоеФункция atol возвращает преобразованное из
значениевходной строки число. Если строка не может быть
преобразована в число типа long, то функция
возвращает 0.
Переносимостьдоступна в UNIX системах и совместима с ANSI
Си.
Смотри такжеatof, atoi, ecvt, fcvt, gcvt, strtod
----------------------------------------------------------------
bar
----------------------------------------------------------------
НазначениеВычерчивание полосы.
Синтаксис#include<graphics.h>
void far bar (int left, int top, int right,
int bottom);
Прототип в graphics.h
Замечанияbar вычерчивает заполненную прямоугольную
полосу. Полоса заполняется с использованием те-
кущего шаблона и цвета заполнения. bar вычерчи-
вает неокантованную полосу; для получения окан-
тованной двумерной полосы используйте bar3d с
аргументом depth=0.
Верхний левый и нижний правый углы прямоуголь-
ника задаются параметрами (left, top) и (right,
bottom) соответственно. Координаты задаются в
единицах растра.
ВозвращаемоеНет.
значение
ПереносимостьДанная функция работает только на IBM PC и
совместимых моделях при наличии соответствующих
графических адаптеров.
Смотри также bar3d, rectangle, setcolor, setfillstyle
Пример
#include<graphics.h>
main()
{
/* требование автоопределения */
int graphdriver = DETECT, graphmode;
/* инициализация графики */
initgraph(&graphdriver, &graphmode, "");
setfillstyle(SOLID_FILL, MAGENTA);
bar3d(100,10,200,100,5,1);
setfillstylle(HATCH_FILL, RED);
bar(30,30,80,80);
getche();
closegraph();
}
-----------------------------------------------------------------
bar3d
-----------------------------------------------------------------
НазначениеВычерчивание трехмерной полосы.
Синтаксис #include<graphics.h>
void far bar3d (int left, int top, int right
int bottom, int depth,
int topflag);
Прототип вgraphics.h
Замечанияbar3d вычерчивает трехмерную прямоугольную по-
лосу с дальнейшим заполнением ее текущими шаб-
лоном и цветом заполнения. Трехмерная окантовка
полосы рисуется текущими стилем и цветом линии.
Глубина полосы в точках растра задается пара-
метром depth.
Параметр topflag регулирует необходимость вы-
черчивания трехмерной вершины полосы. Если
topflag не ноль, то вершина вычерчивается, в
противном случае - нет (делая возможным вычер-
чивание нескольких полос одна над другой).
Верхний левый и нижний правый углы прямоуголь-
ника задаются параметрами (left, top) и (right,
bottom) соответственно. Координаты задаются в
единицах растра.
Для вычисления типовой глубины трехмерной поло-
сы, обычно берется 25% ширины полосы, например:
bar3d (left, top, right, bottom,
(right-left)/4,1);
ВозвращаемоеНет.
значение
ПереносимостьДанная функция работает только на IBM PC и
совместимых моделях при наличии соответствующих
графических адаптеров.
Смотри также bar, rectangle, setcolor, setfillstyle
Пример Смотри bar
-----------------------------------------------------------------
bdos
-----------------------------------------------------------------
НазначениеСистемный вызов MS-DOS.
Синтаксис int bdos (int dosfun, void dosdx,
unsigned dosal)
Прототип в dos.h
ЗамечанияЭта функция обеспечивает прямой доступ к многим
системным вызовам MS-DOS. Смотри руководство
системного программиста (Programmer's Reference
Manual) для детализации каждого системного вы-
зова.
Те системные вызовы, которые требуют целый ар-
гумент, используют bdos, те же, которые требуют
указатель на аргумент, используют bdosptr.
Для малых модeлей данных (tiny, small и medium)
bdos и bdosptr аналогичны. В больших моделях
данных (compact, largе и huge), очень важно ис-
пользование именно bdosptr для системных вызо-
вов, которые требуют указатель в качестве аргу-
мента вызова.
dosfun описана в Руководстве программиста по MS
-DOS.
dosdx - значение регистра DX при вызове bdos.
dosal - значение регистра AL.
Возвращаемоеbdos возвращает значение регистра АХ,
значениеустановленное системным вызовом.
ПереносимостьУникальна для MS-DOS.
Смотри также bdosptr, geninterrupt, int86, int86x, intdos,
intdosx
Пример
#include<stdio.h>
#include<dos.h>
/* Получение текущего драйвера в виде: 'A',
'B', ...*/
char current_drive (void)
{
char curdrive;
/* Получение имени текущего диска в виде: 0,
1, ... */
curdrive = bdos(0x19,0,0);
return('A'+curdrive);
}
main()
{
printf("Текущий драйвер - %s\n",
current_drive()); }
Результат выполнения программы:
Текущий драйвер - С
-----------------------------------------------------------------