- •Содержание
- •Библиотеки
- •Подпрограммы классификации
- •Подпрограммы преобразования
- •Подпрограммы управления каталогом
- •Подпрограммы диагностики
- •Подпрограммы поддержки графики
- •Подпрограммы ввода/вывода
- •Интерфейсные подпрограммы (dos, 8086, bios)
- •Подпрограммы манипулирования (строками, памятью)
- •Математические подпрограммы
- •Подпрограммы распределения памяти
- •Прочие подпрограммы
- •Подпрограммы управления процессами
- •Cтандартные подпрограммы
- •Подпрограммы отображения текста в окнах
- •Подпрограммы работы со временем и датой
- •Подпрограммы с переменным списком аргументов
- •Daylight
- •Directvideo
- •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
Ungetch
-----------------------------------------------------------------
Назначение Возвращает символ обратно в буфер клавиатуры.
Синтаксис int ungetch(int ch);
Прототип в conio.h
Замечания ungetch возвращает символ ch обратно на кон-
соль, поэтому он будет следующим прочитанным
символом. Функция ungetch не будет выполнена,
если она вызывается более одного раза перед
следующим чтением.
Возвращаемое В случае успеха ungetch возвращает символ ch.
значение Если операция не удалась, возвращается EOF.
Переносимость ungetch доступна в UNIX-системах.
См. также getch,getche
-----------------------------------------------------------------
Unixtodos
-----------------------------------------------------------------
Назначение Преобразует дату и время к формату DOS.
Синтаксис #include <dos.h>
void unixtodos(long time, struct date *d,
struct time *t);
Прототип в dos.h
Замечания unixtodos преобразует время, заданное в time в
формате UNIX, к формату DOS и заполняет струк-
туры date и time, на которые указывают d и t.
Возвращаемое Нет.
значение
Переносимость unixtodos уникальна для DOS.
-----------------------------------------------------------------
unlink
-----------------------------------------------------------------
Назначение Уничтожает файл.
Синтаксис int unlink(const char *filename);
Прототип в dos.h, io.h, stdio.h
Замечания unlink уничтожает файл, специфицированный аргу-
ментом filename. В filename могут указываться
любые устройства DOS, маршруты доступа и имена
файлов. Использование метасимволов недопустимо.
Файлы, предназначенные только для чтения, не
могут быть уничтожены путем обращения к этой
функции. Для уничтожения таких файлов необходи-
мо предварительно с помощью функций chmod или
_chmod изменить соответствующие атрибуты.
Возвращаемое В случае успешного завершения unlink возвращает
значение 0. В случае ошибки возвращается -1 и переменная
errno принимает одно из следующих значений:
ENOENT - маршрут или имя файла не обнаружены
EACCES - не разрешен доступ к файлу
Переносимость unlink доступна в UNIX-системах.
См. также chmod,remove
-----------------------------------------------------------------
unlock
-----------------------------------------------------------------
Назначение Разрешает совместное использование файла.
Синтаксис int unlock(int handle, long offset,
long length);
Прототип в io.h
Замечания unlock обеспечивает интерфейс к механизму сов-
местного использования файлов DOS 3.X.
unlock удаляет защиту (замок), установленную
перед этим функцией lock. Для предотвращения
ошибки все замки должны быть сняты до закрытия
файла.
Возвращаемое unlock возвращает 0 в случае успешного заверше-
значение ния и -1 в случае ошибочного.
Переносимость unlock уникальна для DOS 3.x. Более старшие
версии ее не поддерживают.
См. также lock, sopen
-----------------------------------------------------------------
va_...
-----------------------------------------------------------------
Назначение Позволяет использовать переменный список аргу-
ментов.
Синтаксис #include <stdarg.h>
void va_start(va_list param, lastfix);
type va_arg(va_list param, type);
void va_end(va_list param);
Прототип в stdarg.h
Замечания Некоторые функции Си, такие как vfprintf и
vprintf, имеют переменный список аргументов до-
полнительно к фиксированным. Макросы семейства
va_... позволяют осуществить доступ к такому
списку аргументов. Эти макросы используются для
поэлементной обработки списка аргументов, когда
вызываемой функции неизвестно ни количество, ни
типы передаваемых ей аргументов.
Файл-заголовок stdarg.h содержит описание одно-
го типа (va_list) и трех макросов (va_start,
va_arg, va_end).
va_list
-------
Этот массив содержит информацию, необходимую
для va_arg и va_end. Когда вызываемая функция
принимает переменный список аргументов, он объ-
является как переменная param типа va_list.
va_start
--------
Эта подпрограмма (реализованная как макрос)
присваивает param значение указателя на первый
элемент списка аргументов, который будет пере-
дан функции. va_start должна быть вызвана до
первого обращения к va_arg или va_end.
va_start имеет два параметра: param и lastfix
(param рассмотрен при описании va_list в преды-
дущем параграфе; lastfix - имя последнего фик-
сированного параметра, передаваемого вызываемой
функции).
va_arg
------
Эта процедура (также реализованная как макрос)
расширяется в выражение, которое имеет тот же
тип и значение, что и следующий аргумент, кото-
рый должен быть передан функции (один из аргу-
ментов переменного списка). Переменная param в
va_arg должна быть той же самой переменной
param, которая инициализировалась в va_start.
При первом обращении к va_arg, она возвращает
первый аргумент списка. При каждом последующем
обращении к va_arg, она будет возвращать следу-
ющий аргумент из списка. Она осуществляет это
посредством использования первого значения
param, после чего значение param увеличивается
до значения указателя на следующий элемент.
va_arg использует аргумент type как для получе-
ния текущего элемента, так и для коррекции ука-
зателя на следующий элемент. При каждом обраще-
нии к va_arg она изменяет значение указателя
param так, чтобы он указывал на следующий аргу-
мент списка.
va_end
------
Этот макрос помогает при обращении к функции
обеспечить ее нормальное завершение. va_end мо-
жет так модифицировать param, что он не сможет
использоваться до повторного обращения к
va_start. va_end должен быть вызван после того,
как va_arg прочитает все аргументы списка; иг-
норирование этого может послужить причиной
странного и непредвиденного поведения вашей
программы.
Возвращаемое va_start и va_end не возвращают никаких значе-
значение ний; va_arg возвращает текущий аргумент списка
(тот самый, на который указывает param).
Переносимость va_arg, va_start и va_end доступны в UNIX -
системах.
См. также v...printf, v...scanf
Пример 1 #include <stdio.h>
#include <stdarg.h>
/* вычисление суммы списка, завершающегося 0 */
void sum(char *msg, ...)
{
int total = 0;
va_list ap;
int arg;
va_start(ap, msg);
while ((arg = va_arg(ap,int)) !=0 )
{
total += arg;
}
printf(msg, total);
}
main()
{
sum ("Итоговая сумма 1+2+3+4 равна %d\n",
1,2,3,4,0);
}
Вывод программы
Итоговая сумма 1+2+3+4 равна 10
Пример 2 #include <stdio.h>
#include <stdarg.h>
void error(char *format,...)
{
va_list argptr;
printf("ошибка: ");
va_start(argptr, format);
vprintf(format, argptr);
va_end(argptr);
}
main()
{
int value = -1;
error("это просто сообщение об ошибке \n");
error("обнаружено неверное значение %d\n,
value);
}
Вывод программы
ошибка: это просто сообщение об ошибке
ошибка: обнаружено неверное значение -1
-----------------------------------------------------------------
