- •Содержание
- •Библиотеки
- •Подпрограммы классификации
- •Подпрограммы преобразования
- •Подпрограммы управления каталогом
- •Подпрограммы диагностики
- •Подпрограммы поддержки графики
- •Подпрограммы ввода/вывода
- •Интерфейсные подпрограммы (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
Exec...
-----------------------------------------------------------------
НазначениеЗагружает и выполняет программы.
Синтаксис int execl(char *pathname, char *arg0,
*arg1,..., *argn, NULL );
int execle(char *pathname, char *arg0,
*arg1,..., *argn, NULL, char **envp);
int execlp(char *pathname, char *arg0,
*arg1,..., *argn, NULL );
int execlpe(char *pathname, char *arg0,
*arg1,..., *argn, NULL, char **envp);
int execv(char *pathname, char *arg[]);
int execve(char *pathname, char *arg[],
char **envp);
int execvp(char *pathname, char *arg[]);
int execvpe(char *pathname, char *arg[],
char **envp);
Прототип в process.h
ЗамечанияФункции exec...- семейства загружают и выполня-
ют другие программы, называемые процессами-по-
томками. Когда вызов exec... успешен, про-
цесс-потомок размещается с процессом-родителем
оверлейно. Поэтому должно быть достаточное ко-
личество свободной памяти для загрузки и выпол-
нения процесса-потомка.
pathname - маршрут доступа к файлу, вызванного
процесса-потомка. Функции exec... производят
поиск для pathname, используя стандартный алго-
ритм поиска MS-DOS:
# Если расширение явно не задано (например
pathname = MYPROG), то сперва ищется файл без
расширения. Если такой файл не найден, то к
его имени добавляется .COM, и поиск выполня-
ется снова. Если поиск вновь неудачен, то он
повторяется последний раз, но с расширением
.EXE.
# Если явно заданы расширение или точка (напри-
мер, pathname = MYPROG.EXE), то поиск выпол-
няется только для заданного имени файла.
Суффиксы l, v, p и e добавляются к именам функ-
ций exec...-семейства для того, чтобы опреде-
лить конкретные возможности функции.
p Указывает, что функция будет искать процесс -
потомок в каталогах, заданных переменной сре-
ды DOS PATH. Без суффикса p производится по-
иск только в корневом и текущем каталоге. Ес-
ли в параметре pathname не указан каталог, то
вначале просматривается текущий каталог, а
затем каталоги, заданные переменной среды
DOS.
l Указывает, что указатели аргументов (arg0,
arg1, ..., argn) пересылаются как отдельные
аргументы. Суффикс l обычно используется в
тех случаях, когда вы знаете наперед число
пересылаемых аргументов.
v Указывает, что указатели аргументов (arg[0],
arg[1],..., arg[n]) пересылаются как массив
указателей. Обычно суффикс v используется в
тех случаях, когда пересылается переменное
число аргументов.
e Указывает, что аргумент envp может быть пос-
лан процессу-потомку, что позволяет изменить
его среду. Без суффикса e процесс-потомок
наследует среду процесса-родителя.
Каждая функция в семействе exec... должна иметь
один из двух суффиксов (либо l, либо v). Суф-
фиксы поиска маршрута и наследования среды (p и
e) необязательны.
Например:
* exec...-функция execl берет аргументы раз-
дельно, проводит поиск только в корневом и
текущем каталоге для процесса-потомка и пе-
ресылает среду процесса-родителя процессу-
потомку.
* exec...-функция execvpe берет массив аргу-
ментов указателей, включает PATH в свой по-
иск процесса-потомка и принимает аргумент
envp для изменения среды процесса-потомка.
Функции exec... должны пересылать по крайней
мере один аргумент процессу-потомку (arg0 или
arg[0]). Этот аргумент, по соглашению - копия
pathname. (Использование различных значений для
этого аргумента не вызывает ошибок).
В MS-DOS 3.x pathname доступен процессу-потом-
ку; в более ранних версиях процесс-потомок не
может использовать посланное нулевым аргументом
(arg0 или arg[0]) значение.
Если используется суффикс l, то arg0 обычно
указывает на pathname, а arg1, ..., argn указы-
вают на символьные строки, которые образуют но-
вый список аргументов. Обязательный NULL следу-
ет за argn, отмечая конец списка.
Если используется суффикс e, то вы посылаете
список новых установок среды с помощью аргумен-
та envp. Этот аргумент среды представляет собой
массив строк (char*). Каждый элемент указывает
на NULL-оканчивающуюся строку символов вида
envar = value,
где envar - имя переменной среды, а value -
строка, значение которой определяет новую сре-
ду. Последним элементом в envp является NULL.
Когда envp равен NULL, процесс-потомок наследу-
ет среду процесса-родителя.
Общая длина arg0 + arg1 +...+ argn (или arg[0]+
arg[1]+ ...+ arg[n]), включая пробелы, разделя-
ющие аргументы, должна быть меньше 128 байт.
NULL-ограничители не учитываются.
Когда функция exec... вызывается, все открытые
файлы остаются открытыми в процессе-потомке.
ВозвращаемоеПри успешном вызове exec...-функции не возвра-
значениевозвращают значений. При ошибке возвращается
(-1), и errno устанавливается в одно из следую-
щих значений:
E2BIG - список аргументов слишком длинен
EACCES - ошибка доступа
EMFILE - слишком много открытых файлов
ENOENT - маршрут или имя файла не найдены
ENOEXEC - ошибка в формате exec
ENOMEM - недостаточно памяти
Переносимостьexec... уникальна для MS-DOS.
Смотри также abort, atexit, _exit, exit, _fpreset,
searchpath, spawn..., system
Пример
#include<stdio.h>
#include<process.h>
main()
{
int stat;
printf("Вызов процесса-потомка с аргументами"
" arg1 arg2 ...\n");
stat =execl("CHILD.EXE", "CHILD.EXE",
"arg1", "arg2", NULL) ;
/* execl завершится, если не запустит CHILD*/
printf("ошибка execl = %d\n", stat);
exit(1);
}
/* CHILD.C */
#include<stdio.h>
main(int argc, char *argv[])
{
int i;
printf("Процесс-потомок запущен... \n");
/* Распечатать аргументы */
for (i=0; i<argc; i++)
printf("argv[%d]: %s\n", 1, argv[i]);
}
Результат выполнения программы
Вызов процесса-потомка c аргументами arg1 arg2 ...
Процесс-потомок запущен...
arg[0]: CHILD.EXE
arg[1]: arg1
arg[2]: arg2
-----------------------------------------------------------------
_exit
-----------------------------------------------------------------
НазначениеЗавершение процесса.
Синтаксисvoid _exit(int status);
Прототип вprocess.h, stdlib.h
Замечания_exit завершает процесс без закрытия файлов,
очистки вывода или вызова функции выхода.
status используется для вызываемого процесса
как статус окончания процесса. Обычно использу-
ется 0 для указания нормального завершения, не-
нулевое значение указывает на некоторую ошибку.
ВозвращаемоеНет.
значение
Переносимость_exit доступна в системах UNIX.
Смотри также abort, atexit, exec..., exit, spawn...
----------------------------------------------------------------
exit
----------------------------------------------------------------
НазначениеЗавершение процесса.
Синтаксисvoid exit(int status);
Прототип вprocess.h, stdlib.h
Замечанияexit завершает вызванный процесс. Перед завер-
шением закрываются все файлы, записывается бу-
фер вывода (ожидающий вывода), а затем вызыва-
ются любые регистровые функции и функции
завершения (посланные atexit).
status используется для вызываемого процесса
как статус окончания процесса. Обычно использу-
ется 0 для указания нормального завершения, не-
нулевое значение указывает на некоторую ошибку.
ВозвращаемоеНет.
значение
Переносимостьexit доступна в системах UNIX и совместима с
ANSI Си.
Смотри также abort, atexit, exec..., _exit, keep, signal,
spawn...
----------------------------------------------------------------
exp
----------------------------------------------------------------
НазначениеОпределение экспоненты.
Синтаксис #include<math.h>
double exp(double x);
Прототип вmath.h
Замечанияexp - вычисляет экспоненциальную функцию e**x.
Возвращаемоеexp возвращает е**х.
значение
Иногда аргумент, посылаемый функции exp, дает
результат, который переполняет разрядную сетку
или невычисляем. Когда корректное значение па-
раметра х вызывает переполнение, exp возвращает
значениe HUDE_VAL, переменная errno устанавли-
вается в
ERANGE - результат вне границ
При получении очень малых значений (underflow)
exp возвращает 0.0, errno не изменяется.
Обработка ошибок для функции ехр может быть мо-
дифицирована с помощью функции matherr.
Переносимостьexp доступна в системах UNIX и совместима с
ANSI Си.
Cмотри также frexp, ldexp, log, log10, matherr, pow,
pow10, sqrt
-----------------------------------------------------------------
fabs
-----------------------------------------------------------------
НазначениеОпределение абсолютного значения вещественного
аргумента.
Синтаксис#include<math.h>
double fabs(double x);
Прототип в math.h
Замечанияfabs возвращает абсолютное значение вeществен-
ного аргумента х.
Возвращаемоеfabs возвращает абсолютное значение входного
значениеаргумента.
ПереносимостьДоступна в операционной системе UNIX и совмес-
тима с ANSI Си.
Смотри такжеabs, cabs, labs
-----------------------------------------------------------------