- •Содержание
- •Библиотеки
- •Подпрограммы классификации
- •Подпрограммы преобразования
- •Подпрограммы управления каталогом
- •Подпрограммы диагностики
- •Подпрограммы поддержки графики
- •Подпрограммы ввода/вывода
- •Интерфейсные подпрограммы (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
Fnsplit
-----------------------------------------------------------------
НазначениеРасщепляет полное имя файла на компоненты.
Синтаксис #include<dir.h>
void fnsplit(char *path, char *drive,
char *dir, char *name,
char *ext);
Прототип вdir.h
Замечанияfnsplit берет полное имя файла в виде строки
X:\DIR\SUBDIR\NAME.EXT
и расщипляет его на четыре компоненты. Затем
сохраняет эти компоненты в строках, указываемых
параметрами drive, dir, name и ext. (Каждая
компонента обязательна, но может быть и NULL.
Это означает, что соответствующая компонента не
будет сохранена).
Максимальные размеры этих строк задаются конс-
тантами MAXDRIVE, MAXDIR, MAXPATH, MAXNAME и
MAXEXT (определяются в dir.h), и каждый размер
включает место для символа конца строки (\0).
Константа (максимум) строка
--------- ---------- ------
MAXPATH (80) path;
MAXDRIVE (3) drive, включает двоеточие
MAXDIR (66) dir, включает ведущий и
заключительный слеши (\);
MAXFILE (9) name;
MAXEXT (5) ext, включает ведущую
точку (.)
fnsplit предполагает, что имеется достаточно
места для сохранения каждой отличной от NULL
компоненты.
Когда fnsplit расщипляет path, она обрабатывает
знаки препинания так:
* drive содержит двоеточие (C:, A: и т.д.).
* dir содержит ведущий и заключающий обратные
слеши (\turboc\include\, \source\, и т.д.).
* name содержит имя файла.
* ext содержит точку, предшествующую расширению
(.C, .exe, и т.д.).
fnmerge и fnsplit взаимнообратные функции, если
вы разъедините path посредством fnsplit, а за-
тем соедините полученные компоненты с помощью
fnmerge, то получите опять path.
Возвращаемоеfnsplit возвращает целое (получаемое из пяти
значениефлагов, определенных в dir.h), показывающее,
какие из компонент полного имени присутствуют в
path; эти флаги и компоненты, которые они
представляют, следующие:
EXTENSION - расширение
FILENAME - имя файла
DIRECTORY - каталог (и, возможно,
подкаталоги)
DRIVE - спецификация драйвера(см dir.h)
WILDCARD - универсальные сопоставления (*
или ?)
ПереносимостьУникальна для MS-DOS.
Смотри такжеfnmerge
Пример Смотри fnmerge
-----------------------------------------------------------------
fopen
-----------------------------------------------------------------
НазначениеОткрывает поток.
Синтаксис#include<stdio.h>
FILE *fopen(const char *filename, char *type);
Прототип вstdio.h
Замечанияfopen открывает файл с именем filename и возв-
ращает укзатель, используемый для идентификации
потока в последующих операциях.
Тип строки type, используемый при каждом вызо-
ве, может принимать одно из следующих значений:
r Открыть только для чтения
w Создать для записи
a Добавление; открыть для записи в ко-
нец файла или создать для записи,
если файл не существует
r+ Открыть существующий файл для изме-
нения (запись и чтение)
w+ Создать новый файл для изменения
a+ Открыть для добавления; открыть (или
создать, если файл не существует)
для добавления в конец файла.
Для задания того, что файл открыт или создан в
текстовом режиме, вы можете добавить t к значе-
нию type (rt, w+t, и т.д.); аналогично для за-
дания двоичного режима вы должны добавить b к
значению type (wb, a+b, и т.д.). fopen также
допускает менять местами символы b, t и + в
строке режима. Например, использование rt+ эк-
вивалентно r+t.
Если t или b в type не заданы - режим определя-
ется значением глобальной переменной _fmode.
Если _fmode установлена в O_BINARY, то файлы
будут открыты в двоичном режиме. Если _fmode
установлена в O_TEXT - файлы будут открыты в
текстовом режиме. Эти константы определены в
файле fcntl. h.
Когда файл открыт для изменения - в результиру-
ющий поток может быть произведен как ввод, так
и вывод. Однако вывод не может сразу следовать
за вводом без запроса fseek или rewind, как и
ввод не может сразу следовать за выводом без
запроса fseek или rewind, или ввода, который
встречает конец файла.
ВозвращаемоеПри успешном завершении fopen возвращает
значениеуказатель на вновь открытый поток. В случае
ошибки - возвращает NULL.
Переносимостьfopen доступна в системах UNIX и совместима с
ANSI Си. Она определена Керниганом и Ритчи.
Смотри также creat, dup, fclose, fdopen, ferror, _fmode (пе-
ременная), fread, freopen, open, setbuf,
setmode.
Пример
#include<stdio.h>
main()
{
FILE *in, *out;
if ((in = fopen("\\AUTOEXEC.BAT",
"rt")) == NULL);
{
fprint(stderr, "Невозможно открыть файл"
" ввода.\n");
return(1);
}
if ((in = fopen("\\AUTOEXEC.BAК",
"wt")) == NULL);
{
fprint(stderr, "Невозможно открыть файл"
" вывода.\n");
return(1);
}
while (!feof(in))
fputs(fgetc(in), out);
fclose(in);
fclose(out);
}
-----------------------------------------------------------------
FP_OFF
-----------------------------------------------------------------
НазначениеПолучает смещение far-адреса.
Синтаксис #include<dos.h>
unsigned FP_OFF(void far *farptr);
Прототип вdos.h
ЗамечанияFP_OFF - макрофункция, которая может быть ис-
пользована для получения смещения far-указателя
farptr.
ВозвращаемоеFP_OFF возвращает беззнаковое целое, представ-
значениеляющее значение смещения.
Смотри такжеFP_SEG, MK_FP, movedata, segread
Пример
#include<stdio.h>
#include<dos.h>
main()
{
char far *ptr;
unsigned seg, off;
ptr = MK_FP(0xB000,0);
seg = FP_SEG(ptr);
off = FP_OFF(ptr);
printf("far ptr %Fp, segment %04x, offset"
" %04x\n", ptr, seg, off);
}
Результат выполнения программы
far ptr B000:000, segment b000, offset 0000
-----------------------------------------------------------------