- •Содержание
- •Библиотеки
- •Подпрограммы классификации
- •Подпрограммы преобразования
- •Подпрограммы управления каталогом
- •Подпрограммы диагностики
- •Подпрограммы поддержки графики
- •Подпрограммы ввода/вывода
- •Интерфейсные подпрограммы (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
Lsearch
-----------------------------------------------------------------
НазначениеВыполняет линейный поиск.
Синтаксис #include<stdlib.h>
void *lsearch(const void *key, void *base,
size_t *pnelem, size_t width, int (*fcmp)
(const void *, const void *));
Прототип в stdlib.h
lsearch выполняет поиск в таблице.Так как она
использует линейный поиск, то элементы таблицы
не нуждаются в сортировке перед вызовом
lsearch. Если элемент, на который указывает
key, не найден в таблице, то lsearch добавляет
его в таблицу.
- base указывает на базис (0-ой элемент)
поисковой таблицы.
- pnelem указывает на целое, хранящее количест-
во элементов в таблице.
- width содержит число байт в каждом элементе.
- key указывает на искомый элемент ("поисковый
ключ").
Аргумент fcmp указывает на написанную пользова-
телем функцию сравнения. Эта функция сравнивает
два элемента и возвращает результат сравнения.
При поиске в таблице lsearch производит многок-
ратное обращение к функции, адрес которой пере-
дается в fcmp.
При каждом вызове функции сравнения, lsearch
передает ей два аргумента: key, указывающий на
элемент поиска и elem, указывающий на элемент
таблицы, с которым производится сравнение.
fcmp - произвольна в интерпретации совпадения
поискового ключа и элементов таблицы.
Возвращаемоеlsearch возвращает адрес первого элемента
значениетаблицы, удовлетворяющего ключу поиска.
В lsearch
-----------------
Если ключ поиска fcmp возвращает
не равен *elem целое != 0
равен *elem 0
Совместимость lsearch доступна в UNIX - системах.
Смотри такжеbsearch, lfind, qsort
Пример
#include<stdlib.h>
#include<stdio.h>
#include<string.h> /* Для описания strcmp */
char *colors [10] = {"красный","голубой",
"зеленый"};
int ncolors = 3;
/* Возвращает 1 если есть в таблице, 0 если нет
и был добавлен. */
/* Предполагает достаточное пространство для
добавления. */
int addelem (char *color)
{
int oldn = ncolors;
if ((char *) lsearch(color, colors, ncolors,
sizeof(colors[0]), strcmp)> &colors[2])
++ncolors;
return(ncolors == oldn);
}
main ()
{
if (addelem("пурпурный"))
printf("пурпурный уже есть в таблице цветов");
else
printf("Пурпурный добавлен в таблицу. Теперь в"
" ней %d цвета\n" ncolors);
}
Вывод программы:
Пурпурный добавлен в таблицу. Теперь в ней 4
цвета
-----------------------------------------------------------------
lseek
-----------------------------------------------------------------
НазначениеПеремещает указатель файла.
Синтаксис#include<io.h>
long lseek(int handle, long offset,
int fromwhere)
Прототип в io.h
Oписание lseek устанавливает указатель файла, связанный
с handle, на новую позицию, которая на offset
байт отстоит от места в файле, заданного в
fromwhere. fromwhere должно быть одной из сле-
дующих величин: 0, 1 или 2, что представляется
тремя символическими константами (определенными
в io.h):
fromwhere Размещение в файле
--------- ------------------
SEEK_SET (0) начало файла
SEEK_CUR (1) текущее положение указателя
файла
SEEK_END (2) конец файла
Возвращаемоеlseek возвращает новое смещение указателя,
значениеизмеряемое числом байт от начала. При ошибке
lseek возвращает -1L и устанавливает еrrno в
одно из значений:
EBADF - неверный номер файла
EINVAL - неверный аргумент
На устройствах, недоступных для установки ука-
зателя (таких, как терминал и принтер), возвра-
щаемое значение не определено.
Переносимостьlseek доступнa на всех системах типа UNIX.
Смотри также filelenth, fseek, ftell, sopen, _write, write
-----------------------------------------------------------------
ltoa
-----------------------------------------------------------------
НазначениеПреобразует число типа long в строку.
Синтаксис char *ltoa(long value,char *string,int radix);
Прототип вstdlib.h
Замечанияltoa преобразует value в заканчивающуюся нулем
строку и заносит результат в string. Для ltoa
тип value - длинное целое.
radix определяет основание, используемое в
превращаемом value. Оно должно быть от 2 до 36
(включительно). Если value отрицательно и radix
=10, то первый символ строки - знак минуса (-).
Замечание: место, выделенное для string, должно
быть достаточно большим для того, чтобы помес-
тить возвращаемую строку, включая 0 в конце
(\0). ltoa может возвращать до 33 байт;
Возвращаемоеltoa возвращает указатель на string, ошибка не
значениевозвращается.
Смотри такжеitoa, ultoa
-----------------------------------------------------------------
malloc
-----------------------------------------------------------------
НазначениеРазмещает основную память.
Синтаксис #include<stdlib.h> или #include<alloc.h>
void *malloc(unsigned size);
Прототип в stdlib.h и alloc.h
Замечанияmalloc размещает блок из size байт в памяти
(куча памяти Си).
Куча доступна для динамического размещения пу-
тем создания блоков памяти различного размера.
Многие структуры данных, такие, как деревья и
списки, естественно, используют размещение па-
мяти в виде кучи.
Все пространство между концом сегмента данных и
вершиной программного стека в малых моделях па-
мяти доступно для использования, кроме 256 бай-
тов непосредственно перед вершиной стека. Эта
память используется для возможности увеличения
стека и, кроме того, небольшое количество памя-
ти используется для нужд MS-DOS.
В больших моделях памяти все пространство от
программного стека до конца физической памяти
является кучей.
Возвращаемоеmalloc возвращает указатель на заново размещен-
значениеный блок или NULL,если для размещаемого блока
недостаточно памяти. Если аргумент size равен
0, то malloc вернет NULL.
Переносимостьmalloc доступна на UNIX системах и совместима с
ANSI Cи.
Смотри также allocmem, calloc, coreleft, farcalloc,
farmalloc, free, realloc
Пример
#include<stdio.h>
#include<stdlib.h>
typedef struct {
/* .....*/
} OBJECT;
OBJECT *NewObject()
{
return ((OBJECT *) malloc(sizeof(OBJECT)));
}
void FreeObject(OBJECT *obj)
{
free(obj);
}
main()
{
OBJECT *obj;
obj = NewObject();
if (obj == NULL)
{
printf("Невозможно создать новый объект\n");
exit(1);
}
/*......*/
FreeObject(obj);
}
-----------------------------------------------------------------