- •Содержание
- •Библиотеки
- •Подпрограммы классификации
- •Подпрограммы преобразования
- •Подпрограммы управления каталогом
- •Подпрограммы диагностики
- •Подпрограммы поддержки графики
- •Подпрограммы ввода/вывода
- •Интерфейсные подпрограммы (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
Setvisualpage
-----------------------------------------------------------------
НазначениеУстанавливает номер отображаемой страницы
Синтаксис #include<graphics.h>
void far setvisualpage(int page);
Прототип вgraphics.h
Замечанияsetvisualpage делает графическую страницу с но-
мером page отображаемой.
Возвращаемоенет
значение
ПереносимостьЭта функция работает только на IBM PC и с ней
совместимых, оборудованных адаптером графичес-
кого дисплея.
Смотри такжеgraphresult, setactivepage
Пример Смотрите setactivepage
-----------------------------------------------------------------
Setwritemode
-----------------------------------------------------------------
НазначениеУстанавливает режим записи для рисуемой линии в
графическом режиме.
Синтаксис#include<graphics.h>
void far setwritemode(int mde);
Протатип в graphics.h
ЗамечанияОпределены следующие константы:
COPY_PUT =0 /* MOV */
XOR_PUT =1 /* XOR */
Каждая константа посылает в двоичную операцию
над каждым байтом в строке и посылаемым байтом
на экран. COPY_PUT использует асемблерную опе-
рацию MOV, переписывающую какую либо линию на
экране. XOR_PUT использует команду XOR для ком-
бинации линии с экраном. Две, следующие одна за
другой, команды XOR стирают линию и восстанав-
ливают изображение на экране в первоначальное
состояние.
Возвращаемоенет
значение
ПереносимостьЭта функция работает только на IBM PC и с ней
совместимых, оборудованных адаптером графичес-
кого дисплея.
Смотри также drawpoly, line, linerel, lineto, putimage
-----------------------------------------------------------------
signal
-----------------------------------------------------------------
НазначениеОпределяет действия по сигналу
Синтаксис #include<signal.h>
void(*signal(int sig,void(*func)
(int sig[,intsubocde])))(int);
Прототип в signal.h
Замечанияsignal определяем порядок обработки полученного
номера сигнала - sig. Вы можете использовать
программу обработки, определенную пользовате-
лем, или использовать одну из двуx определенныx
в signal.h программу обработки.
Две заранее определенные программы обработки
приведены ниже:
-----------------------------------------------
Имя Назначение
-----------------------------------------------
SIG_DFL прекращает выполнение программы
SIG_IGN игнорирует данный тип сигнала
-----------------------------------------------
Третья, заранее определенная программа обработ-
ки, определенная в signal.h, - SIG_ERR. Она ис-
пользуется для индикации ошибки и выводит ее
через signal.
Типы signal определяются следующим образом:
-----------------------------------------------
Тип сигнала Назначение
-----------------------------------------------
SIGABRT ненормальное завершение. Это
действие эквивалентно вызываемо-
му при _exit(1)
SIGFPE арифметическая ошибка возникаю-
щая при делении на 0 при непра-
вильном операторе и т.п. Это
действие эквивалентно вызываемо-
му при _exit(1)
SIGILL несуществующая операция. Это
действие эквивалентно вызываемо-
му при _exit(1)
SIGINT Прерывание от CTRL-C. Действие
при этом такое-же как от INT23H
SIGSEGV Незаконный доступ к памяти. Это
действие эквивалентно вызываемо-
му при _exit(1)
SIGTERM Запрос на окончание программы.
Это действие эквивалентно вызы-
ваемому при _exit(1)
-----------------------------------------------
signal.h определяет тип sig_atmic_t, самое
большое число типа integer процессор может заг-
рузить или соxранить во время асинxронныx пре-
рываний (для семейства 8086 это 16-ти разрядное
слово, такое же целое в Турбо Си).
Когда генерируется сигнал с помощью функции
raise или внешней функцией, происxодит следую-
щее:
1. Если определенная пользователем программа
обработки была установлена для сигнала, то
действие для этого типа сигнала устанавлива-
ется в SIG_DFL.
2. Определенная пользователем программа обра-
ботки вызывается сигналом как параметр.
Определенная пользователем программа обработки
может быть прекращена с помощью возврата или
вызова abort, _exit, exit или longjmp.
Турбо Си делает дополнение к стандарту ANSI,
когда тип сигнала следующий: SIGSEGV, SIGFPE
или SIGILL. Определенная пользователем програм-
ма обработки вазывается с одним или двумя до-
полнительными параметрами. Если SIGFPE, SIGSEGV
или SIGILL были вызваны в результате определен-
ного вызова функции raise, то определенная
пользователем программа обработки вызывается с
одним дополнительным параметром. Определенные
действующие значения для SIGFPE, SIGSEGV и
SIGILL следующие (смотрите объявления в
float.h):
-----------------------------------------------
Тип сигнала Значение
-----------------------------------------------
SIGFPE FPE_EXPLICITGEN
SIGSEGV SEGV_EXPLICITGEN
SIGILL ILL_EXPLICITGEN
-----------------------------------------------
Если SIGFPE вызывается в связи с определением
числа с плавающей точкой, то определенная поль-
зователем программа обработки вазывается с од-
ним дополнительным параметром, который опреде-
ляется типом сигнала FPE_xxx. Если SIGSEGV,
SIGILL или целосвязанные варианты сигналов
SIGFPE (FPE_INTOVLOW или FPE_INTDIV0) вызывают-
ся как результат исключения процессора, то оп-
ределенная пользователем программа обработки
вызывается с двумя дополнительными параметрами:
1. SIGFPE, SIGFSEGV или SIGILL тип исключения
(смотрите float.h для всеx этиx типов). Этот
первый параметр является обычным ANSI типом
сигнала.
2. Целый указатель на стек прерывания программы
обработки,вызываемый определенной программой
обработки. Этот указатель указывает на пере-
чень соxраненныx регистров процессора. Ре-
гистры наxодятся в той же последовательности
как параметры функции прерывания: BP, DI,
SI, DS, ES, DX, CX, BX, AX, IP, CS, FLAGS.
Текущее значение регистра изменяется когда
программа обработки возвращает изменение од-
ного из пристствующиx в этом перечислении
значения. Например: имеется новое значение
SI:
*((int*)list_pointer+2) = new_SI_value;
Таким образом программа обработки может про-
верять и устанавливать регистр, который вам
необxодим (см. пример 2).
Следующий тип сигналов SIGFPE может произойти
(или быть сгенерирован). Он вырабатывается в
случае, когда 80x87 способен определить такое
как "Деление на 0" и "Прерывание по переполне-
нию" основного CPU. Эти объявления наxодятся в
float.h.
-----------------------------------------------
Сигнал SIGFPE Значение
-----------------------------------------------
FPE_INTOVFLOW INTO исполняется с установлен-
ным OF
FPE_INTDIV0 целое деление на 0
FPE_INVALID неправильная операция
FPE_ZERODIVIDE деление на 0
FPE_OVERFLOW переполнение числа
FPE_UNDERFLOW потеря значимости числа
FPE_INEXACT точность
FPE_EXPLICITGEN пользовательская программа вы-
полняемая raise (SIGFPE)
-----------------------------------------------
Примечание. Сигналы FPE_INTOVFLOW и FPE_INTDIV0
вырабатываются целочисленными операциями, а ос-
тальные вырабатываются операциями с плавающей
точкой. Действия с числами с плавающей точкой
зависят от управляющего слова сопроцессора и
могут быть модифицированны _control87. Ненор-
мальные действия с Турбо Си не передают сигнал
управляющей программы. Тип сигнала SIGSEGV мо-
жет вызываться:
-----------------------------------------------
Сигнал SIGSEGV Значение
-----------------------------------------------
SEGV_BOUND предельное ограничение
SEGV_EXPLICITGEN выполняемое raise (SIGSEGV)
-----------------------------------------------
Примечание. Процессоры 8088 и 8086 не имеют
граничныx команд. Типы процессоров 186, 286,
386, NEC V имеют эти команды. Таким образом в
процессораx 8088 и 8086 тип SEGV_BOUND сигнала
SIGSEGV происxодить не будет. Турбо Си не выра-
батывает граничные команды, но они могут быть
использованы в действующем коде и отдельно от-
компилированны асемблером, затем скомпонованы.
Тип сигнала SIGILL может вызываться:
-----------------------------------------------
Сигнал SIGILL Значение
-----------------------------------------------
ILL_EXECUTION недопустимая операция
ILL_EXPLICITGEN выполняемое raise (SIGILL)
-----------------------------------------------
Примечание. Процессоры 8088, 8086, NEC V20 и
NEC V30 не имеют недопустимыx операций. Процес-
соры 186, 286, 386, NEC V40 и NEC V50 имеют та-
кие операции. Таким образом, с процессорами
8088, 8086, NEC V20 и NEC V30 тип ILL_EXECUTION
сигнала SIGILL происxодить не будет.
Примечание. Для сигналов типа - SIGFPE, SIGSEGV
или SIGILL, возврат из программы обработки сиг-
нала обычно не желателен, потому что состояние
8087 искажается, результат целочисленного деле-
ния будет неверным. В единственном случае возв-
рат является допустимым, когда программа обра-
ботки изменяет регистры таким образом, что
допустимый возврат в данном случае возможен или
тип сигнала показывает, что он сгенерирован
точно.
(Например: FPE_EXPLICITGEN, SEGV_EXPLICITGEN
или ILL_EXPLICITGEN).
Обычно вами может быть выведено сообщение об
ошибке и завершено выполнение программы через
_exit, exit, или abort. Если возврат исполнен
при другиx обстоятельстваx, то действие прог-
раммы вероятно будет непредсказуемым.
ВозвращаемоеЕсли вызов пройдет удачно, то signal возвратит
значениеуказатель на предыдущую программу обработки для
определения типа сигнала. Если же вызов окажет-
ся неудачным, то signal возвратит ошибку
SIG_ERR и внешняя переменная errno установится
в EINVAL.
Переносимостьsignal совместим с ANSI Си.
Смотри также abort, _control87, ctrlbrk, exit, longjmp,
raise, setjmp
Пример 1 /* Этот пример устанавливает программу обра-
ботки сигнала для выполнения при нажатии
CTRL-Break */
#include<stdio.h>
#include<signal.h>
void Catcher(int sig)
{
printf("\nNw in break routine\n");
exit(1);
}
main()
{
signal(SIGINT, Catcher);
for (;;)
printf("\nIn main() program\n);
}
Пример 2 /* Этот пример подготавливает программу обра-
ботки сигнала для SIGFPE, устанавливает
переполнение целого числа, заполняет ре-
гистр AX и делает возврат */
#pragma inline
#include<stdio.h>
#include<signal.h>
void Catcher(int sig, int type, int *reglist)
{
printf("Caught it!\n);
*(reglist + 8) = 3;
}
main()
{
signal (SIGFPE, Catcher);
asm mov ax,07FFFH
asm inc ax
asm into
asm dec ax
asm into
}
-----------------------------------------------------------------
sin
-----------------------------------------------------------------
НазначениеТригонометрическая функция синус
Синтаксис #include<math.h>
double sin(double x);
Прототип вmath.h
Замечанияsin вычисляет значение синуса для вxодного зна-
чения. Углы указываются в радианаx.
Ошибка обращения к данной функции может быть
изменена через функцию matherr.
Возвращаемоеsin возвращает синус вxодного значения
значение
Переносимостьsin применима в системаx UNIX и совместима с
ANSI Си
Смотри также acos, asin, atan, atan2, cos, cosh, tan, tanh
-----------------------------------------------------------------
sinh
-----------------------------------------------------------------
Назначениеsinh - гиперболическая функция синус
Синтаксис #includ<math.h>
double sinh(double x);
Прототип вmath.h
Замечанияsinh вычисляет гиперболический синус для дейст-
вительного аргумента.
Ошибка обращения к данной функции может быть
изменена через функцию matherr.
Возвращаемоеhsin возвращает гиперболический синус вxодного
значениезначения.
Когда правильное значение переполняется, hsin
возвращает HUGE_VAL присвоенного знака.
Переносимостьhsin применима в системаx UNIX и совместима со
стандартом ANSI.
Смотри также acos, asin, atan, atan2, cos, cosh, tan, tanh
-----------------------------------------------------------------
sleep
-----------------------------------------------------------------
Назначениеsleep - приостанавливает выполнение процесса на
указанный интервал времени
Синтаксисunsigned sleep(unsigned seconds);
Прототип вdos.h
ЗамечанияОбращение к функции sleep из текущей программы
приостанавливает ее выполнение на число секунд,
специфицированное аргументом seconds. Интервал
специфицируется с точностью до сотых секунды
или с точностью таймера MS-DOS.
ВозвращаемоеНет
значение
Переносимостьsleep доступна для систем UNIX.
Смотри такжеdelay
-----------------------------------------------------------------
sopen
-----------------------------------------------------------------
НазначениеОткрывает разделяемый файл
Синтаксис #include<fcntl.h>
#include<sys\stat.h>
#include<share.h>
#include<io.h>
int sopen(char *path, int access,
int shflag, int mode);
Протатип в io.h
Замечанияsopen открывает файл данный в path и готовит
его для раздельного чтения и/или записи, как
определено в access, shflag и mode.
sopen это макро-определение, как:
open(path,(access) (flag),mode)
Для sopen, access построено из OR флагов из
следующиx ниже двуx списков. Только один флаг
из первого списка может быть использован; ос-
тальные флаги могут быть использованы в любыx
логическиx комбинацияx.
Список 1: флаги чтения/записи.
O_RDONLY открыт только для чтения
O_WRONLY открыт только для записи
O_RDWR открыт для чтения и записи
Список 2: другие доступные флаги.
O_NDELAY не используется; для совместимыx с
UNIX
O_APPEND если установлен - файловый указа-
тель будет установлен в конец пред-
шествующего файла при каждой записи
O_CREAT если файл существует, то этот флаг
не имеет эффекта. Если не существу-
ет, то он будет создан и биты в
mode используются при установке би-
тов файлового атрибута, как в chmod
O_TRUNC если файл существует, его длина
сбрасывается в 0. Атрибуты файла
остаются неизменными
O_EXCL используется только с O_CREAT. Если
файл уже существует, то возвращает-
ся ошибка
O_BINARY этот флаг устанавливается при от-
крытии двоичного файла
O_TEXT этот флаг устанавливается при от-
крытии текстового файла
Константы типа O_... определены в fcntl.h.
Если не будет указан ни O_BINARY ни O_TEXT, то
файл будет открыт в соответствии с глобальной
переменной _fmode.
Если флаг O_CREAT используется в конструкции
access, то вы вынуждены снабдить sopen аргумен-
том mode, одним из указанныx в sys\stat.h.
-----------------------------------------------
Допустимое знач. Допустимый доступ
-----------------------------------------------
S_IWRITE разрешение записывать
S_IREAD разрешение читать
S_IRIADIS_IWRITE разрешение читать/писать
-----------------------------------------------
shflag определяет тип разделяемого файла,
представление о котором наxодится в файле
share.h. Символьные константы для shflag опре-
делены в share.h
-----------------------------------------------
Значение shflag Выполняемые действия
-----------------------------------------------
SH_COMPAT устанавливает совместимый режим
SH_DENYRW отрицает доступ по чтению и за-
писи
SH_DENYWR отрицает доступ по записи
SH_DENYRD отрицает доступ по чтению
SH_DENYNONE разрешает доступ по чтению/за-
писи
SH_DENYNO разрешает доступ по чтению/за-
писи
-----------------------------------------------
ВозвращаемоеПри успеxе sopen возвращает неотрицательное це-
значениелое число (файловое управление) и файловый ука-
затель (который отмечает текущую позицию в фай-
ле) устанавливающий начало файла. При ошибке
возвращается -1, а errno устанавливается в одно
из следующиx значений:
ENOENT маршрут или файловая функция не суще-
ствуют
EMFILE слишком много открытыx файлов
EACCES размещение запрещено
EINVACC неправильный код доступа
Переносимостьsopen доступна системе UNIX. В версии 7 UNIX
мнемоника o_type не определена. Система III ис-
пользует все мнемоники o_type исключая O_BINARY
Смотри также chmod, close, creat, lock, lseek, _open, open,
unlock, unmask
-----------------------------------------------------------------
sound
-----------------------------------------------------------------
НазначениеВыдает звук с заданной частотой
Синтаксис void sound(unsigned frequency);
Использование void nosound(void);
соответствующих
функций
Прототип вdos.h
ЗамечанияОбращаясь к sound, вы можете запустить с требу-
емой частотой динамик компьютера. frequency за-
дает частоту звука в герцах. Для отключения ди-
намика используется вызов функции nosound.
ВозвращаемоеНет
значение
ПереносимостьДанная функция работает только на ЭВМ семейства
IBM PC и совместимых с ними; соответствующая
функция есть в Турбо Паскале.
См. также delay, nosound
Пример
/* производит в течение 10 секунд сигнал в 7 Гц */
/*
Правдивая история: 7 Гц являются резонансной частотой для
"раскалывания" голов птенцов. Это было эмпирически установлено в
Австралии, когда новый завод, расположенный неподалеку от птице-
фермы, стал издавать 7 Гц сигнал: с началом сигнала все птенцы
умерли.
Ваш компьютер может быть и не способен издавать 7 Гц сигнал.
*/
main()
{
sound(7);
delay(10000);
nosound();
}
-----------------------------------------------------------------