c71e249a4e
First substantive commit: the entire Sprinter C compiler tree on top of
the bare README+gitignore initial commit.
What's in here:
bin/sprinter-cc — driver script invoking SDCC + linker + mkexe
libc/ — Sprinter-specific libc layer over ESTEX/BIOS
(conio, gfx, io, mem, stdio + headers)
runtime/ — crt0 variants (default/small/banked/minimal)
+ heap + bank trampolines
toolchain/ — mkexe (SprintEXE packer, C + tests)
examples/ — 30 demo programs (gfx, file I/O, env, time, …)
lib/Makefile — builds the libc archive (sprinter.lib)
docs/ — converted Sprinter manuals + asm reference samples
third_party/ — solid-c reference compiler dump + sdcc setup script
release_docs/ — packaging / release notes
gitignore overhaul:
• Drop dangerous blanket patterns: *.asm (would hide docs/samples/*.asm)
and *.exe (case-insensitive match was hiding third_party/solid-c/*.EXE
on macOS APFS). Replaced with examples/*/*.{asm,exe,…} and lib/*.lib.
• Restore tracking of toolchain/mkexe/tests/{one,big}.bin — those are
INPUT fixtures, not build outputs.
• Collapse the duplicated SDCC/C/Sdcc sections into one section per
concern (build outputs / vendored / OS-junk).
• Add .sprinter-cc-*/, build/ (catches lib/build/ too), .claude/.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2571 lines
104 KiB
Plaintext
2571 lines
104 KiB
Plaintext
Последняя редакция: 3.09.2004
|
||
|
||
|
||
|
||
ОПИСАНИЕ ФУНКЦИЙ БИБЛИОТЕКИ СИ
|
||
|
||
|
||
|
||
|
||
Примечание.
|
||
Для функций форматного ввода/вывода, строка указанного формата не преобразу-
|
||
ется и в выходной поток не передается, а становится спецификатором преобразо-
|
||
ваний, выполняемых по следующим правилам:
|
||
|
||
% [-] [[o]w] [.n]c
|
||
|
||
Знак "-" указывает на то, что данное поле подвергается сдвигу влево (обычно
|
||
поля сдвигаются вправо).
|
||
Знак "w" обозначает максимальное ограничение поля по ширине. Если перед
|
||
знаком "w" поставлен нуль, то данное поле в отличие от пробела имеет символ
|
||
расширения "нуль".
|
||
Знак "-n" действует только в том случае, когда имеется преобразователь
|
||
строк (%s). С помощью знака ".n" устанавливается максимальное число символов,
|
||
выводимых в одной строке.
|
||
Символ "с" может принимать одно из следующих значений:
|
||
|
||
d - десятичное число со знаком;
|
||
u - десятичное число без знака;
|
||
o - восьмеричное число без знака;
|
||
x - шестнадцатиричное (без знака);
|
||
s - символьная строка;
|
||
c - символ.
|
||
|
||
Информация, в составе которой отсутствуют приведенные выше символы преоб-
|
||
разований, передается в выводимый поток без изменений. Например, с помощью
|
||
последовательности "%%" можно вывести один символ процента "%".
|
||
|
||
|
||
|
||
|
||
ABORT
|
||
|
||
#include <stdlib.h>
|
||
|
||
void abort()
|
||
|
||
Описание.
|
||
|
||
Функция выводит на экран сообщение "Abnormal program termination"
|
||
(непредвиденное завершение программы) и завершает вызванный процесс без
|
||
обновления буферов файлов.
|
||
|
||
|
||
ABS
|
||
|
||
#include <stdlib.h>
|
||
|
||
int abs(int n);
|
||
|
||
Описание.
|
||
|
||
Функция abs возвращает значение n, равное абсолютной величине n.
|
||
|
||
|
||
ABSREAD
|
||
|
||
#include <dos.h>
|
||
|
||
char absread(char disk, int nsect, char count, char buffer)
|
||
|
||
disk - номер диска
|
||
nsect - номер начального сектора
|
||
count - кол-во читаемых секторов
|
||
buffer - адрес буфера под считываемые данные
|
||
|
||
Описание.
|
||
|
||
Абсолютное чтение с диска. Функция считывает в буфер один или
|
||
несколько секторов с заданным начальным относительным номером. Секторы
|
||
нумеруются с 0 от начала логического (не физического!) диска. К примеру,
|
||
загрузочный сектор данного логического диска имеет номер 0, далее первая
|
||
копия FAT начинается с сектора номер 1 и т.д.
|
||
Функция возвращают 0 при успешном завершении операции. В случае ошибки
|
||
возвращается -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
ABSWRITE
|
||
|
||
#include <dos.h>
|
||
|
||
char abswrite(char disk, int nsect, char count, char buffer)
|
||
|
||
disk - номер диска
|
||
nsect - номер начального сектора
|
||
count - кол-во записываемых секторов
|
||
buffer - адрес буфера данных
|
||
|
||
Описание.
|
||
|
||
Абсолютная запись на диск. Функция записывает из буфера один или
|
||
несколько секторов с заданным начальным относительным номером. Секторы
|
||
нумеруются с 0 от начала логического (не физического!) диска. К примеру,
|
||
загрузочный сектор данного логического диска имеет номер 0, далее первая
|
||
копия FAT начинается с сектора номер 1 и т.д.
|
||
Функция возвращают 0 при успешном завершении операции. В случае ошибки
|
||
возвращается -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
ATEXIT
|
||
|
||
#include <stdlib.h>
|
||
|
||
char atexit(*func)
|
||
|
||
Описание.
|
||
|
||
Функция регистрирует (заносит в свой список) функцию *func как
|
||
"exit function", т.е. отрабатывающую перед выходом в ДОС. В случае нормаль-
|
||
ного окончания программы, exit вызывает (без аргументов) "exit function"
|
||
как раз перед возвратом в операционную систему. Каждый вызов atexit регист-
|
||
рирует другую завершающуюся функцию. Регистрируемые функции не мoгут иметь
|
||
параметрoв. Может быть зарегистрировано не более 8 функций, которые выпол-
|
||
няются в порядке "последний пришел - первый ушел" (LIFO).
|
||
Функция atexit сooтветствует стандарту ANSI и дoлжна испoльзoваться вместo
|
||
onexit, если требуется сoвместимoсть с ANSI.
|
||
Функция вoзвращает 0, если все нoрмальнo и ненулевoе значение
|
||
при oшибке (если уже oпределенo макс. число exit-функций).
|
||
|
||
Пример
|
||
main()
|
||
{
|
||
atexit(func1); // "Exit Function 1 called"
|
||
atexit(func2); // "Exit Function 2 called"
|
||
printf("Main quitting ...\n");
|
||
}
|
||
|
||
Выведется:
|
||
|
||
Main quitting ...
|
||
Exit Function 2 called
|
||
Exit Function 1 called
|
||
|
||
|
||
ATOI
|
||
|
||
#include <stdlib.h>
|
||
|
||
int atoi(*string)
|
||
|
||
Описание.
|
||
|
||
Функция преобразует символьную строку string в целое значение.
|
||
Исходная строка string представляет собой последовательность символов,
|
||
которые могут быть интерпретированы как числовое значение определенного
|
||
типа. Функция прекращает чтение исходной строки, как только появится
|
||
первый символ, который не может быть воспринят как часть числа (им может
|
||
быть нулевой символ, завершающий строку).
|
||
Функция возвращает значение int типа.
|
||
Возвращаемое значение равно 0, если вход не может быть преобразован в
|
||
значение данного типа. В случае переполнения, возвращаемое значение не
|
||
определено.
|
||
|
||
|
||
BDOS
|
||
|
||
#include <dos.h>
|
||
|
||
char bdos(char n, int doshl, char dosa)
|
||
int bdosh(char n, int doshl, char dosa)
|
||
|
||
Описание.
|
||
|
||
Функция выполняет системный вызов ДОС, номер которого определен
|
||
в n. Аргументы doshl и dosa размещаются соответственно в регистрах HL и A.
|
||
Функция выполняет команду RST 10h для осуществления системного вызова.
|
||
Функция может быть использована только для системных ДОС-вызовов, которые
|
||
не принимают аргументов или принимают их только в регистрах HL и A.
|
||
Функция возвращает значение регистра A, заполненного системным вызовом.
|
||
|
||
Примечание: Эту функцию нельзя использовать для осуществления системных
|
||
вызовов, в которых ошибки указываются посредством установки флага переноса.
|
||
Т.к. си-программы не имеют доступа к этому флагу, статус возвращаемого
|
||
значения определить невозможно. В этом случае необходимо использовать
|
||
функцию intdos.
|
||
Функция bdosh отличается от bdos только тем, что возвращаемое значение
|
||
содержится в рег. паре HL.
|
||
Обе функции можно использовать для ДОС-вызовов: 02h,0Ah,0Bh,0Eh,11h,1Bh
|
||
1Ch,1Dh,1Eh,5Ch функций.
|
||
|
||
|
||
BSEARCH
|
||
|
||
#include <stdlib.h>
|
||
|
||
void *bsearch(*key, *base, num, size, *compare)
|
||
|
||
char *key; - указатель на ключ (строку) поиска
|
||
char *base; - указатель на массив
|
||
unsigned num; - число элементов массива
|
||
unsigned size; - размер каждого элемента
|
||
int (*compare)(); - указатель на функцию сравнения
|
||
|
||
Описание.
|
||
|
||
Функция bsearch выполняет двоичный поиск в отсортированном массиве.
|
||
Аргумент compare является указателем на процедуру, поставляемую пользова-
|
||
телем. В процессе поиска, функция bsearch может вызывать эту процедуру один
|
||
или несколько раз, при каждом вызове передавая указатели на два элемента
|
||
массива. Процедура compare должна сравнивать элементы, а затем возвращать
|
||
одно из следующих int-значений:
|
||
|
||
< 0 element1 < element2
|
||
0 element1 = element2
|
||
> 0 element1 > element2
|
||
|
||
Функция bsearch возвращает указатель на первое вхождение ключа key в массиве.
|
||
Возвращается NULL, если ключа key в массиве нет.
|
||
|
||
|
||
CALLOC
|
||
|
||
#include <malloc.h> или <stdlib.h>
|
||
|
||
char *calloc(int n, int size)
|
||
|
||
Описание.
|
||
|
||
Функция захватывает пространство для хранения массива из n элементов,
|
||
каждый размером size байт. Каждый элемент инициализируется в 0.
|
||
Функция возвращает указатель на захваченное пространство.
|
||
Если недостаточно памяти, возвращается значение NULL.
|
||
|
||
|
||
CGETS
|
||
|
||
#include <conio.h>
|
||
|
||
char *cgets(*str)
|
||
|
||
Описание.
|
||
|
||
Функция читает строку символов прямо с консоли, запоминает строку и
|
||
ее длину в аргументе str. Аргумент str должен быть указателем на массив сим-
|
||
волов. Первый элемент массива - str[0] должен содержать максимальную длину
|
||
(в символах) читаемой строки. Массив должен быть достаточно большим, чтобы
|
||
вместить строку и заключительный нуль. Функция продолжает считывать символы,
|
||
пока не будет прочитан код новой строки (0x0D) или заданное количество сим-
|
||
волов. При этом, код новой строки заменяется на нуль. Строка запоминается
|
||
с str[2] элемента массива. Во втором элементе массива str[1] запоминается
|
||
действительная длина строки.
|
||
Функция возвращает указатель на начало строки, находящейся в str[2].
|
||
В случае ошибки, возвращаемое значение не определено.
|
||
|
||
|
||
CHDIR
|
||
|
||
#include <direct.h>
|
||
|
||
char chdir(char *pathname)
|
||
|
||
Описание.
|
||
|
||
Функция изменяет текущий каталог и текущий диск, если он указан
|
||
в pathname. Если путь начинается с "\" - это означает путь от корневого
|
||
каталога, иначе от текущего. Pathname должен ссылаться на существующий
|
||
каталог.
|
||
Функция возвращает значение 0, если рабочий каталог успешно изменен.
|
||
При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
CLEARERR
|
||
|
||
#include <stdio.h>
|
||
|
||
void clearerr(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция clearerr относится к высоко-уровневому вводу/выводу.
|
||
Функция сбрасывает в FILE-структуре файла 4-й бит "индикатора ошибки"
|
||
и 5-й бит "индикатора конца файла". Индикаторы ошибок автоматически
|
||
не очищаются: если для файла установлен индикатор ошибки, то операции
|
||
над файлом будут возвращать значения ошибок до тех пор, пока не будут
|
||
вызваны функции clearerr или rewind.
|
||
|
||
|
||
CLRSCR
|
||
|
||
#include <conio.h>
|
||
|
||
void clrscr()
|
||
|
||
Описание.
|
||
|
||
Функция производит очищение экрана.
|
||
|
||
|
||
CPRINTF
|
||
|
||
#include <conio.h>
|
||
|
||
int cprintf(char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция выводит с преобразованием формата наборы символов и значений
|
||
прямо на экран. Каждый аргумент должен указывать на значение с типом, который
|
||
соответствует типу, заданному в строке формата.
|
||
Функция возвращает число выведенных символов. При ошибке вывода, функция
|
||
возвращает отрицательное значение.
|
||
|
||
|
||
CPUTS
|
||
|
||
#include <conio.h>
|
||
|
||
void cputs(char *str)
|
||
|
||
Описание.
|
||
|
||
Функция выводит текстовую строку прямо на экран. Строка должна
|
||
оканчиваться нулем.
|
||
|
||
|
||
CREAT
|
||
|
||
#include <io.h>
|
||
|
||
uint creat(char *name, int attr)
|
||
uint creat(char *name, char attr)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода.
|
||
Функция creat создает новый файл. Если файл уже существует, урезает его
|
||
до нулевой длины. Значение attr состоит из одной или нескольких констант:
|
||
S_IWRITE и S_IREAD, объявленных в "stat.h". Если задаются обе константы,
|
||
они объединяются при помощи логического ИЛИ "|".
|
||
Функция возвращает номер дексриптора.
|
||
При ошибке, возвращает значение -1 (0FFFFh) и errno содержит номер ошибки.
|
||
|
||
Функция возвращает номер дескриптора файла, если Ok.
|
||
При ошибке, возвращает значение -1 (0FFFFh) и ячейка errno содержит номер
|
||
ошибки.
|
||
|
||
|
||
DEC8
|
||
|
||
#include <stdlib.h>
|
||
|
||
void dec8(char value)
|
||
|
||
Описание.
|
||
|
||
Функция выводит аргумент value в десятичном формате, без ведущих
|
||
нулей. Диапазон выводимых значений 0..255. Функция не возвращает никакого
|
||
значения.
|
||
|
||
|
||
DEC16
|
||
|
||
#include <stdlib.h>
|
||
|
||
void dec16(uint value)
|
||
|
||
Описание.
|
||
|
||
Функция выводит аргумент value в десятичном формате, без ведущих
|
||
нулей. Диапазон выводимых значений 0..65535. Функция не возвращает никакого
|
||
значения.
|
||
|
||
|
||
DEC32
|
||
|
||
#include <stdlib.h>
|
||
|
||
void dec32(uint high, uint low)
|
||
|
||
Описание.
|
||
|
||
Функция выводит два 16-ти битных аргумента high (ст.разряд) и
|
||
low (мл.разряд) как одно значение. Вывод происходит в десятичном формате,
|
||
без ведущих нулей. Диапазон выводимых значений 0...4 млрд.
|
||
Функция не возвращает никакого значения.
|
||
|
||
|
||
DISABLE
|
||
|
||
#include <dos.h>
|
||
|
||
void disable()
|
||
|
||
Описание.
|
||
|
||
Функция запрещает прерывания.
|
||
|
||
|
||
DIV
|
||
|
||
#include <stdlib.h>
|
||
|
||
struct divt *div(uint num1, uint num2)
|
||
|
||
Описание.
|
||
|
||
Функция делит num1 на num2, возвращая частное и остаток. Возвращает
|
||
структуру типа div_t, определенную в <stdlib.h>.
|
||
|
||
|
||
ENABLE
|
||
|
||
#include <dos.h>
|
||
|
||
void enable()
|
||
|
||
Описание.
|
||
|
||
Функция разрешает прерывания.
|
||
|
||
|
||
_EXIT
|
||
|
||
#include <stdlib.h>
|
||
|
||
void _exit(int code)
|
||
|
||
Описание.
|
||
|
||
Функция завершает вызванный процесс без обновления буферов потока.
|
||
Значение code обычно устанавливается в 0 для указания нормального выхода и
|
||
устанавливается в любое другое значение для определения ошибки. Поскольку
|
||
вызов _exit не возвращает значения, то мл. байт code является кодом возв-
|
||
рата для родительского процесса.
|
||
|
||
|
||
EXIT
|
||
|
||
#include <stdlib.h>
|
||
|
||
void exit(int code)
|
||
|
||
Описание.
|
||
|
||
Функция завершает вызванный процесс. Перед завершением процесса,
|
||
функция сбрасывает все буферы в файлы и закрывает все открытые файлы. Перед
|
||
выходом в операционую систему, функция предварительно вызывает на отработку
|
||
зарегистрированные функции "exit function" (отрабатывающие перед выходом в
|
||
ДОС). Значение code обычно устанавливается в 0 для указания нормального вы-
|
||
хода и устанавливается в любое другое значение для определения ошибки.
|
||
Поскольку вызов exit не возвращает значения, то мл. байт code является кодом
|
||
возврата для родительского процесса.
|
||
|
||
|
||
FCLOSE
|
||
|
||
#include <stdio.h>
|
||
|
||
char fclose(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция сбрасывает буфер в файл и закрывает его. Данной функцией можно закры-
|
||
вать только те файлы, работа с которыми производится в рамках высоко-уровне-
|
||
вого ввода/вывода. Для закрытия файлов в рамках низко-уровневого ввода/вывода,
|
||
необходимо применять функцию close.
|
||
Функция возвращает 0 при успешном завершении. При ошибках возвращается
|
||
значение -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
FCLOSALL
|
||
|
||
#include <stdio.h>
|
||
|
||
void fclosall()
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция сбрасывает все буферы в файлы и закрывает все открытые файлы.
|
||
|
||
|
||
FDOPEN
|
||
|
||
#include <stdio.h>
|
||
|
||
FILE *fdopen(FD fd, char *mode)
|
||
|
||
Описание.
|
||
|
||
Функция разрешает файлу, oткрытoму для низкo-урoвневoгo ввoда/вывoда,
|
||
быть буферирoванным и фoрматирoванным, т.е. преобразует его для высоко-уровне-
|
||
вого ввода/вывода. После этого, для всех пoследующих oпераций с файлом, необ-
|
||
ходимо использовать функции высоко-уровневого ввода/вывода. В следствии этого,
|
||
закрывать файл необходимо функцией fclose, а не close. Символьная строка mode
|
||
определяет тип доступа к файлу:
|
||
|
||
r,w,a - режим текст. файла
|
||
rb,wb,ab - режим. бинарного файла
|
||
r+, w+, a+ - r/w, "на обновление" текст. файла
|
||
r+b, w+b, a+b - r/w, "на обновление" бинарного файла
|
||
|
||
В дoбавление к вышеприведенным значениям, может быть добавлен симвoл "b"
|
||
или "t", для задания режима трансляции нoвых стрoк. Опция "t" не относится
|
||
к ANSI-стандарту для fopen. Этo расширение Microsoft и oнo не дoлжнo испoль-
|
||
зoваться, если требуется ANSI-сoвместимoсть.
|
||
Если "b" или "t" не заданы в стрoке "mode", режим трансляции oпределяется
|
||
как "t".
|
||
Функция вoзвращает указатель на oткрытую FILE-структуру. При ошибке, возвра-
|
||
щается NULL.
|
||
|
||
|
||
FFIRST, _FFIRST
|
||
|
||
#include <dos.h>
|
||
|
||
char _ffirst(char *pathname, FIND *ffblk, char attr)
|
||
char ffirst(char *pathname, FIND *ffblk, char attr)
|
||
|
||
Описание.
|
||
|
||
Функция ffirst производит поиск заданного в pathname файла из группы
|
||
файлов. Аргумент pathname может содержать имя диска и каталог для поиска. В
|
||
имени файла допускаются глобальные символы ? и *. Имя найденного файла нахо-
|
||
дится в формате DOS "filename.ext".
|
||
Функция _ffirst отличается от функции ffirst тем, что возвращает имя найден-
|
||
ного файла в формате "FilenameExt".
|
||
Если файл обнаружен, функция заполняет структуру (определенную в "dos.h"), на
|
||
которую указывает аргумент ffblk.
|
||
Аргумент attr содержит атрибут(ы) файлов для поиска и может принимать следую-
|
||
щие значения, определенные в "dos.h":
|
||
|
||
FA_NORMAL Обычный файл
|
||
FA_RDONLY Только чтение
|
||
FA_HIDDEN Скрытый файл
|
||
FA_SYSTEM Системный файл
|
||
FA_LABEL Метка тома
|
||
FA_DIREC Каталог
|
||
FA_ARCH Архивный
|
||
|
||
Мoжнo задавать кратные значения атрибутов, испoльзуя симвoл "|" (оператор OR).
|
||
Функция возвращает 0 при успешном завершении поиска.
|
||
Если файл не найден или в имени файла встретилась какая-либо ошибка, возвра-
|
||
щается -1 и errno содержит номер ошибки.
|
||
|
||
|
||
FFLUSH
|
||
|
||
#include <stdio.h>
|
||
|
||
char fflush(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция освобождает (записывает) буфер открытого файла. Применяется для сох-
|
||
ранения данных на диске, перед выполнением операции, могущей сломать систему.
|
||
Если файл открыт для записи, буфер сбрасывается в файл. Если файл открыт для
|
||
чтения, буфер очищается. После вызова функции, файл остается открытым.
|
||
Функция возвращает 0, если буфер успешно обновлен. Это же значение возвраща-
|
||
ется, когда поток не имеет буфера или когда он открыт только для чтения. В
|
||
случае возникновения ошибки, возвращается значение EOF.
|
||
|
||
|
||
FGETC
|
||
|
||
#include <stdio.h>
|
||
|
||
char fgetc(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция читает текущий символ из потока fp и ставит указатель (если он есть)
|
||
на следующий символ. Возвращается считанный символ.
|
||
В случае возникновения ошибки или достижения конца файла, возвращается значе-
|
||
ние EOF. Однако, значение EOF может быть воспринято как целая величина, тогда
|
||
нужно использовать функции ferror и feof для проверки ошибки или конца файла.
|
||
|
||
|
||
FGETPOS
|
||
|
||
#include <stdio.h>
|
||
|
||
char fgetpos(FILE *fp, fpos_t *position)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция сохраняет текущее положение указателя файла в объекте, на который
|
||
указывает position. Позднее, функция fsetpos использует значение, хранимое
|
||
в position для переустановки указателя в файле в новое положение. Значение
|
||
position хранится вo внутреннем фoрмате и oнo дoлжнo испoльзoваться тoлькo
|
||
с функциями fgetpos и fsetpos.
|
||
Функция вoзвращает 0. При ошибке, вoзвращается -1.
|
||
|
||
|
||
FGETS
|
||
|
||
#include <stdio.h>
|
||
|
||
char *fgets(char *string, int maxlen, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция читает строку из входного потока fp и располагает ее в string.
|
||
Символы считываются, начиная с текущей позиции fp и до символа новой
|
||
строки '\n' или до конца потока, либо пока число считанных символов не
|
||
станет равным maxlen-1. Строка размещается в string, затем в ее конец
|
||
ставится нуль. Символ новой строки также включается в string. Если в
|
||
начале считывания maxlen равнялось 1, то string будет пустой "".
|
||
Функция возвращает указатель на строку string. При ошибке или конце файла,
|
||
возвращается NULL.
|
||
|
||
|
||
FNEXT
|
||
|
||
#include <dos.h>
|
||
|
||
char fnext(FIND *ffblk)
|
||
|
||
Описание.
|
||
|
||
Функция производит поиск следующего совпадающего файла. При каждом
|
||
вызове, функция возвращает одно имя файла, до тех пор, пока параметры файла
|
||
будут подходить под заданные параметры поиска. Аргумент ffblk должен указы-
|
||
вать на структуру (определенную в <dos.h>), предварительно заполненную функ-
|
||
цией ffirst.
|
||
Функция возвращает 0 при успешном завершении поиска. Если файл не найден или
|
||
в имени файла встретилась какая-либо ошибка, возвращается -1 и errno содержит
|
||
номер ошибки.
|
||
|
||
|
||
FOPEN
|
||
|
||
#include <stdio.h>
|
||
|
||
FILE *fopen(pathname, mode)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция открывает файл с именем pathname. Символы в строке mode определяют
|
||
тип доступа к файлу.
|
||
Функция возвращает указатель на структуру открытого файла. При ошибке, возв-
|
||
ращается NULL.
|
||
|
||
|
||
FPRINTF
|
||
|
||
#include <stdio.h>
|
||
|
||
int fprintf(FILE *fp, char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция выводит данные с преобразованием формата в файл *fp из пере-
|
||
менных, определяемых указателями аргументов args. Каждый аргумент должен ука-
|
||
зывать на значение с типом, который соответствует типу, заданному в строке
|
||
формата.
|
||
Функция возвращает число выведенных символов. При ошибке вывода, функция
|
||
возвращает отрицательное значение.
|
||
|
||
|
||
FPUTC
|
||
|
||
#include <stdio.h>
|
||
|
||
char fputc(char ch, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Записывает символ ch в файл fp. Функция возвращает записанный символ.
|
||
При ошибке, возвращается значение EOF.
|
||
|
||
|
||
FPUTS
|
||
|
||
#include <stdio.h>
|
||
|
||
char fputs(char *string, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция копирует строку в конец файла fp. Нулевой символ окончания
|
||
строки '\0' не копируется. Функция возвращает последний записанный символ.
|
||
При ошибке возвращается значение EOF.
|
||
|
||
|
||
FREAD
|
||
|
||
#include <stdio.h>
|
||
|
||
uint fread(buffer, size, count, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция читает объекты размера size по счетчику count из входного файла
|
||
fp и располагает их в буфере buffer. Возвращает число реально прочитанных
|
||
объектов.
|
||
Примечание. При чтении из stdin, код 0x0D заменяется на код 0x0A (прoгoн
|
||
бумаги) и нет возможности редактировать вводимые данные. Нажатие на комби-
|
||
нацию клавиш Ctrl+Z или Ctrl+C воспринимается как конец ввода данных.
|
||
Для ввода строки символов из stdin лучше использовать функцию gets, допус-
|
||
кающую редактирование вводимых данных.
|
||
|
||
|
||
FREE
|
||
|
||
#include <malloc.h> или <stdlib.h>
|
||
|
||
void free(char *ptr)
|
||
|
||
Описание.
|
||
|
||
Функция освобождает блок памяти. Аргумент ptr указывает на ранее
|
||
захваченный блок памяти посредством вызова malloc, calloc, realloc.
|
||
Возвращаемого значения нет.
|
||
|
||
|
||
FREOPEN
|
||
|
||
#include <stdio.h>
|
||
|
||
FILE *freopen(pathname, mode, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция закрывает текущий файл, связанный с дескриптором (FILE-структурой)
|
||
fp и переназначает этот дескриптор на новый файл, определяемый path-именем.
|
||
Ошибки при закрытии файла игнорируются. Эта функция обычно применяется для
|
||
переадресации предоткрытых потоков stdin, stdout, stderr, stdaux и stdprn в
|
||
файлы, определяемые пользователем. Но поскольку ДОС Estex не поддерживает эти
|
||
потоки, то при попытке переадресации stdin, stdout, stderr, stdaux и stdprn,
|
||
будет возвращен NULL. Новый файл открывается в режиме mode.
|
||
Функция возвращает указатель на fp вновь открытого файла. При ошибке, функция
|
||
возвращает значение NULL.
|
||
|
||
|
||
FSCANF
|
||
|
||
#include <stdio.h>
|
||
|
||
int fscanf(FILE *fp, char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция читает данные с преобразованием формата из файла *fp, в пере-
|
||
менные, определяемые указателями аргументов args. Каждый аргумент должен ука-
|
||
зывать на значение с типом, который соответствует типу, заданному в строке
|
||
формата. Функция использует буфер в области стека, размером 128 байт.
|
||
Функция возвращает число полей, разделенных спец-символами. При достижении
|
||
конца файла, возвращается EOF.
|
||
|
||
|
||
FSEEK
|
||
|
||
#include <stdio.h>
|
||
|
||
struct fpoint *fseek(FILE *fp, high, low, type)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция устанавливает указатель в файле на новое место расположения, опреде-
|
||
ляемое аргументами high и low, соответственно старшая и младшая часть 32-х
|
||
битного значения перемещения. Тип перемещения определяется аргументом type.
|
||
Следующая операция в файле выполняется на новом месте расположения указателя.
|
||
Аргумент type может быть одной из следующих констант, определенных в <stdio.h>
|
||
|
||
SEEK_SET от начала файла
|
||
SEEK_CUR от текущей позиции указателя в файле
|
||
SEEK_END от конца файла
|
||
|
||
Функция возвращает структуру f_point, определенную в "types.h".
|
||
При ошибке возвращается -1 и errno содержит номер ошибки. Установка указателя
|
||
за пределами файла, ошибки не вызывает. Для устройств, не приспособленных к
|
||
поиску (таких как терминалы и принтеры), возвращается значение -1.
|
||
|
||
|
||
FSETPOS
|
||
|
||
#include <stdio.h>
|
||
|
||
char fsetpos(FILE *fp, fpos_t *position)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция fsetpos устанавливает положение указателя в файле равным значению,
|
||
находящемуся в position, кoтoрoе пoлучается при вызoве функции fgetpos для
|
||
данного файла. Функция oчищает индикатoр кoнца файла. Значение position
|
||
хранится вo внутреннем фoрмате и oнo дoлжнo испoльзoваться тoлькo с функ-
|
||
циями fgetpos и fsetpos.
|
||
Функция вoзвращает 0. При ошибке, вoзвращается -1.
|
||
|
||
|
||
FTELL
|
||
|
||
#include <stdio.h>
|
||
|
||
struct fpoint *ftell(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция ftell получает текущую позицию указателя в файле. Позиция выражается
|
||
как число байтов от начала файла. Функция возвращает структуру f_point, опре-
|
||
деленную в <types.h>.
|
||
При ошибке возвращается -1 и errno содержит номер ошибки. Для устройств, не
|
||
приспособленных к поиску (таких как терминалы и принтеры), возвращается значе-
|
||
ние -1.
|
||
|
||
|
||
FWRITE
|
||
|
||
#include <stdio.h>
|
||
|
||
uint fwrite(buffer, size, count, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция записывает объекты размера size по счетчику count из буфера buffer
|
||
в выходной файл fp.
|
||
Возвращает число реально записанных объектов.
|
||
|
||
|
||
GETC
|
||
|
||
#include <stdio.h>
|
||
|
||
char getc(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция читает текущий символ из потока fp и ставит указатель (если он есть)
|
||
на следующий символ. Возвращается считанный символ.
|
||
В случае возникновения ошибки или достижения конца файла, возвращается значе-
|
||
ние EOF. Однако, значение EOF может быть воспринято как целая величина, тогда
|
||
нужно использовать функции ferror и feof для проверки ошибки или конца файла.
|
||
|
||
|
||
GETCH
|
||
|
||
#include <conio.h>
|
||
|
||
char getch()
|
||
|
||
Описание.
|
||
|
||
Функция читает символ с клавиатуры без отображения на экране.
|
||
|
||
|
||
GETCHE
|
||
|
||
#include <conio.h>
|
||
|
||
char getche()
|
||
|
||
Описание.
|
||
|
||
Функция читает символ с клавиатуры с отображением на экране. При
|
||
нажатии на Ctrl+Z или Ctrl+C, возвращает значение -1.
|
||
|
||
|
||
GETCURSMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
MSCURS *getCursMouse(char *buffer)
|
||
|
||
Описание.
|
||
|
||
Функция получает изображение курсора из драйвера мыши и сохраняет
|
||
его в буфере buffer.
|
||
Функция возвращает указатель на заполненную структуру MSCURS, определенную
|
||
в <mouse.h>.
|
||
При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки.
|
||
|
||
|
||
GETSENSMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
MSSENS *getSensMouse()
|
||
|
||
Описание.
|
||
|
||
Функция возвращает значения чувствительности перемещения мыши по
|
||
вертикали и горизонтали.
|
||
Функция возвращает указатель на заполненную структуру MSSENS, определенную
|
||
в <mouse.h>.
|
||
При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки.
|
||
|
||
|
||
GETGSTATMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
MSGSTAT *getGStatMouse()
|
||
|
||
Описание.
|
||
|
||
Функция возвращает текущие графические координаты курсора мыши
|
||
и состояние ее кнопок.
|
||
Функция возвращает указатель на структуру MSGSTAT, определенную в <mouse.h>.
|
||
При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки.
|
||
|
||
|
||
GETSTATMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
MSSTAT *getStatMouse()
|
||
|
||
Описание.
|
||
|
||
Функция возвращает текущие текстовые координаты курсора мыши и
|
||
состояние ее кнопок.
|
||
Функция возвращает указатель на структуру MSSTAT, определенную в <mouse.h>.
|
||
При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки.
|
||
|
||
|
||
GETCWD
|
||
|
||
#include <direct.h>
|
||
|
||
char *getcwd(char *pathbuff, int len)
|
||
|
||
Описание.
|
||
|
||
Функция получает полное (с буквой диска) path-имя текущего каталога
|
||
и сохраняет его в буфере pathbuff. В конце path-имени текущего каталога стоит
|
||
символ "\" с заключительным нулем в конце строки. Аргумент len определяет мак-
|
||
симальную длину для path-имени, которая должна быть достаточной, чтобы вмес-
|
||
тить информацию вместе с заключительным нулем. Максимальная длина path-имени
|
||
в ДОС равна 256 байтов. Если длина path-имени превышает len, то path-имя обре-
|
||
зается на длину len, при этом символ "\" в конец строки не ставится.
|
||
Если аргумент pathbuff равен NULL, то getcwd вызывает malloc для выделения
|
||
буфера размером len байтов. Этот выделенный буфер позже может быть освобожден
|
||
посредством функции free.
|
||
Функция возвращает указатель на pathbuff. При ошибке возвращается NULL и errno
|
||
содержит номер ошибки.
|
||
|
||
|
||
GETDATE
|
||
|
||
#include <dos.h>
|
||
|
||
void getdate(struct date *date)
|
||
|
||
Описание.
|
||
|
||
Функция возвращает системную дату в заполненной структуре date.
|
||
Структура date описана в <dos.h>.
|
||
|
||
|
||
GETDISK
|
||
|
||
#include <dos.h>
|
||
|
||
char getdisk()
|
||
|
||
Описание.
|
||
|
||
Функция возвращает номер текущего диска.
|
||
Номер диска соответствует: 0=A, 1=B,... и т.д.
|
||
|
||
|
||
GETENV
|
||
|
||
#include <stdlib.h>
|
||
|
||
char *getenv(char *varname)
|
||
|
||
Описание.
|
||
|
||
Функция возвращает для заданного имени переменной окружения varname
|
||
указатель на значение (строку) этой переменной. Максимальная длина строки
|
||
значения переменной окружения должна быть не более 255 байт.
|
||
Возвращается значение NULL, если заданная переменная на текущий момент не
|
||
определена. При ошибке также возвращается NULL, но в errno будет содержаться
|
||
номер ошибки.
|
||
|
||
|
||
GETS
|
||
|
||
#include <stdio.h>
|
||
|
||
char *gets(char buffer[255])
|
||
|
||
Описание.
|
||
|
||
Функция читает из стандартного потока stdin строку и запоминает ее в
|
||
своем буфере buffer. Входная строка читается до тех пор, пока не встрерится
|
||
код новой строки "0x0D" или число введенных символом не превысит 254. В конец
|
||
строки вместо кода 0x0D заносится нуль, в отличии от функции fgets, которая
|
||
сохраняет символ 0x0D.
|
||
Функция возвращает указатель на буфер. В случае ошибки, возвращаемое значение
|
||
не определено.
|
||
Формат строки в буфере следующий:
|
||
|
||
+0: - байт, содержащий длину прочитанной строки, без концевого нуля.
|
||
+1: - начало строки.
|
||
|
||
|
||
GETTIME
|
||
|
||
#include <dos.h>
|
||
|
||
void gettime(struct time *time)
|
||
|
||
Описание.
|
||
|
||
Функция возвращает системное время в заполненной структуре time.
|
||
Структура time описана в <dos.h>.
|
||
|
||
|
||
GOTOXY
|
||
|
||
#include <conio.h>
|
||
|
||
void gotoxy(int x, int y)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает курсор на X,Y позицию.
|
||
|
||
|
||
HARDMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char hardMouse()
|
||
|
||
Описание.
|
||
|
||
Обработчик аппаратного прерывания от мыши. По приходу прерывания от
|
||
мыши, вызывается данная функция драйвера. В случае, когда требуется работа
|
||
подпрограммы при запрещенных прерываниях, используйте данную функцию, для
|
||
избежания потерь пакетов данных от мыши.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
HEX8
|
||
|
||
#include <stdlib.h>
|
||
|
||
void hex8(char value)
|
||
|
||
Описание.
|
||
|
||
Функция выводит в шестнадцатеричном формате значение value.
|
||
Диапазон выводимых значений 0x00..0xFF.
|
||
Возвращаемого значения нет.
|
||
|
||
|
||
HEX16
|
||
|
||
#include <stdlib.h>
|
||
|
||
void hex16(uint value)
|
||
|
||
Описание.
|
||
|
||
Функция выводит в шестнадцатеричном формате значение value.
|
||
Диапазон выводимых значений 0x0000..0xFFFF.
|
||
Возвращаемого значения нет.
|
||
|
||
|
||
HEX32
|
||
|
||
#include <stdlib.h>
|
||
|
||
void hex32(uint high, uint low)
|
||
|
||
Описание.
|
||
|
||
Функция выводит в шестнадцатеричном формате 16-ти битные значения
|
||
аргументов high (ст.разряд) и low (мл.разряд) как одно число.
|
||
Возвращаемого значения нет.
|
||
|
||
|
||
HIDEMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char hideMouse(void)
|
||
|
||
Описание.
|
||
|
||
Функция убирает курсор мыши с экрана, но драйвер продолжает
|
||
отслеживание перемещения мыши и нажатие на кнопки.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
HOME
|
||
|
||
#include <conio.h>
|
||
|
||
void home()
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает курсор в левый верхний угол экрана.
|
||
|
||
|
||
INITMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char initMouse(void)
|
||
|
||
Описание.
|
||
|
||
Функция выполняет инициализацию драйвера мыши.
|
||
Функция возвращает 0 при успешном завершении. При ошибке, возвращается
|
||
значение -1.
|
||
|
||
|
||
INP
|
||
|
||
#include <conio.h>
|
||
|
||
char inp(uint port)
|
||
|
||
Описание.
|
||
|
||
Функция читает один байт из порта port. Аргумент port может быть
|
||
любым беззнаковым целым числом в диапазоне от 0 до 65535.
|
||
Функция возвращает прочитанный байт из port.
|
||
|
||
|
||
INTDOS
|
||
|
||
#include <dos.h>
|
||
|
||
void intdos(union REGS *ri, union REGS *ro)
|
||
|
||
Описание.
|
||
|
||
Функция intdos осуществляет выполнение системного ДОС-вызова (с возв-
|
||
ратом флагов условий), который определен значениями регистров, объявленных в
|
||
union REGS *ri и возвращает результат системного вызова в union REGS *ro.
|
||
Тип объединения union REGS объявлен в <dos.h>.
|
||
Для осуществления системного вызова intdos выполняет команду RST 10h. Перед
|
||
выполнением команды функция копирует содержимое union REGS *ri в соответству-
|
||
ющие регистры. После выполнения команды RST, функция intdos копирует значения
|
||
текущих регистров в union REGS *ro. Она также копирует возвращаемый флаг усло-
|
||
вий системы в поле flag, размещенное в union REGS *ro. Если это поле является
|
||
ненулевым, флаг указывает на условие ошибки.
|
||
|
||
union REGS *ri - значения регистров при вызове
|
||
union REGS *ro - значения регистров при возврате
|
||
|
||
|
||
ISALNUM
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isalnum(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к алфавитно-цифровому
|
||
типу (A..Z, a..z, 0..9).
|
||
|
||
|
||
ISALPHA
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isalpha(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к буквам (A..Z, a..z).
|
||
|
||
|
||
ISASCII
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isascii(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на ASCII принадлежность.
|
||
|
||
|
||
ISATTY
|
||
|
||
#include <io.h>
|
||
|
||
BOOL isatty(FD fd)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода. Функция определяет, принад-
|
||
лежит ли данный дескриптор стандартным потокам (терминал, консоль,...).
|
||
Функция возвращает:
|
||
true - дескриптор принадлежит терминалу, консоли.
|
||
false - дескриптор принадлежит файлу.
|
||
|
||
|
||
ISCNTL
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL iscntl(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к управляющим
|
||
символам (0х00..0х1F или 0x7F).
|
||
|
||
|
||
ISDIGIT
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isdigit(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к цифре.
|
||
|
||
|
||
ISGRAPH
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isgraph(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к печатаемым символам,
|
||
исключая символ пробела (0х21..0х7E).
|
||
|
||
|
||
ISLOWER
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL islower(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к строчному символу.
|
||
|
||
|
||
ISPRINT
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isprint(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к печатаемым
|
||
символам (0х20..0х7E).
|
||
|
||
|
||
ISPUNCT
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL ispunct(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к знакам пунктуации.
|
||
|
||
|
||
ISSPACE
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isspace(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к пробельным
|
||
символам (0x09, 0x0D или 0x20).
|
||
|
||
|
||
ISUPPER
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isupper(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к прописному символу.
|
||
|
||
|
||
ISXDIGIT
|
||
|
||
#include <ctype.h>
|
||
|
||
BOOL isxdigit(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция проверяет символ ch на принадлежность к шестнадцатеричным
|
||
цифрам (0..9, A..F, a..f).
|
||
|
||
|
||
KBHIT
|
||
|
||
#include <conio.h>
|
||
|
||
BOOL kbhit()
|
||
|
||
Описание.
|
||
|
||
Функция проверяет нажатие клавиши на клавиатуре.
|
||
Возвращает:
|
||
true - клавиша нажата
|
||
false - клавиша не нажата
|
||
|
||
|
||
LONGJMP
|
||
|
||
#include <setjmp.h>
|
||
|
||
void longjmp(env, retval)
|
||
|
||
jmp_buf env; - переменная, в которой хранится окружение
|
||
int retval; - значение, возвращаемое при вызове setjmp
|
||
|
||
Описание.
|
||
|
||
Функция longjmp восстанавливает состояние стека, ранее сохраненное
|
||
в env функцией setjmp.
|
||
Функции setjmp и longjmp обеспечивают возможность выполнения нелокального
|
||
(nonlocal) перехода и обычно используются для передачи управления к обработке
|
||
ошибок для восстановления кода в ранее вызванной процедуре (без использования
|
||
обычного вызова), для возврата условных обозначений. Вызов setjmp активизирует
|
||
сохранение текущего состояния стека в env. Последующий вызов longjmp восста-
|
||
навливает сохраненное состояние и возвращает управление на указатель (точку
|
||
входа), непосредственно следующий за соответствующим вызовом setjmp.
|
||
Функция longjmp должна вызываться ранее функции, определяющей возврат setjmp.
|
||
Если longjmp вызвана после функции, определяющей возврат setjmp, то может
|
||
произойти непредсказуемое поведение программы.
|
||
Значение retval, возвращаемое longjmp, должно быть ненулевым. Если для
|
||
retval задан аргумент 0, значение возврата заменяется значением 1.
|
||
Функция longjmp не возвращает никакого значения.
|
||
|
||
|
||
LSEEK
|
||
|
||
#include <io.h>
|
||
|
||
struct fpoint *lseek(FD fd, uint high, uint low, int type)
|
||
struct fpoint *lseek(FD fd, uint high, uint low, char type)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода. Функция устанавливает указа-
|
||
тель в файле на новое место расположения, определяемое аргументами high и low,
|
||
соответственно старшая и младшая часть 32-х битного значения перемещения.
|
||
Тип перемещения определяется аргументом type. Следующая операция в файле вы-
|
||
полняется на новом месте расположения указателя. Аргумент type может быть
|
||
одной из следующих констант, определенных в <io.h>
|
||
|
||
SEEK_SET от начала файла
|
||
SEEK_CUR от текущей позиции указателя в файле
|
||
SEEK_END от конца файла
|
||
|
||
Функция возвращает структуру f_point, определенную в <types.h>.
|
||
При ошибке возвращается -1 и errno содержит номер ошибки.
|
||
Установка указателя за пределами файла, ошибки не вызывает.
|
||
Для устройств, не приспособленных к поиску (таких как терминалы и принтеры),
|
||
возвращается значение -1.
|
||
|
||
|
||
LTELL
|
||
|
||
#include <io.h>
|
||
|
||
struct fpoint *ltell(FD fd)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода. Функция получает текущую
|
||
позицию указателя в файле. Позиция выражается как число байтов от начала
|
||
файла.
|
||
Функция возвращает структуру f_point, определенную в <types.h>.
|
||
При ошибке возвращается -1 и errno содержит номер ошибки.
|
||
Для устройств, не приспособленных к поиску (таких как терминалы и принтеры),
|
||
возвращается значение -1.
|
||
|
||
|
||
MALLOC
|
||
|
||
#include <malloc.h> или <stdlib.h>
|
||
|
||
char *malloc(int size)
|
||
|
||
Описание.
|
||
|
||
Функция захватывает блок памяти размером в size байтов.
|
||
Функция возвращает указатель на выделенный блок памяти. Если свободной
|
||
памяти недостаточно, возвращается NULL.
|
||
|
||
|
||
MAX
|
||
|
||
#include <stdlib.h>
|
||
|
||
int max(int arg1, int arg2)
|
||
|
||
Описание.
|
||
|
||
Функция сравнивает два аргумента и вoзвращает значение наибольшего
|
||
аргумента. Тип аргументoв и тип вoзвращаемoгo значения oдинакoв.
|
||
|
||
|
||
MEMCHR
|
||
|
||
#include <string.h>
|
||
|
||
void *memchr(char *buff, ch, count)
|
||
|
||
Описание.
|
||
|
||
Функция ищет первые count байт в buff с целью обнаружения первого
|
||
появления символа ch. Поиск продолжается до тех пор, пока не будет найден
|
||
указанный символ или не будут проверены все count байты.
|
||
Функция возвращает указатель на расположение символа ch в buff.
|
||
Если символ ch не обнаружен в первых count байтах buff, возвращается NULL.
|
||
|
||
|
||
MEMCMP
|
||
|
||
#include <mem.h>
|
||
|
||
int memcmp(*buf1, *buf2, count)
|
||
|
||
Описание.
|
||
|
||
Функция производит последовательное лексиграф. сравнение первых
|
||
count байтов из buf1 и buf2, и продолжает это, пока они совпадают, либо
|
||
пока не выполнится заданное количество сравнений count.
|
||
Функция возвращает значение, указывающее на соотношение этих буферов:
|
||
|
||
< 0 buf1 < buf2
|
||
= 0 buf1 = buf2
|
||
> 0 buf1 > buf2
|
||
|
||
|
||
MEMCPY
|
||
|
||
#include <mem.h>
|
||
|
||
void *memcpy(*dest, *source, count)
|
||
|
||
Описание.
|
||
|
||
Функция копирует count байтов из source в dest. Если некоторые
|
||
участки source и dest перекрываются, функция гарантирует, что байты из
|
||
перекрываемого участка, принадлежащие source, будут скопированы перед
|
||
перезаписью.
|
||
Функция возвращает указатель на dest.
|
||
|
||
|
||
MEMMOVE
|
||
|
||
#include <mem.h>
|
||
|
||
void *memmove(*dest, *source, count)
|
||
|
||
Описание.
|
||
|
||
Функция кoпируют count байтов из source в dest. Если некoтoрые
|
||
oбласти в source и dest перекрываются, функция гарантирует, чтo исхoдные
|
||
source байт из перекрывающейся oбласти будут скoпирoваны перед переписы-
|
||
ванием.
|
||
Функция возвращает указатель на dest.
|
||
|
||
|
||
MEMSET
|
||
|
||
#include <mem.h>
|
||
|
||
void *memset(*dest, ch, count)
|
||
|
||
Описание.
|
||
|
||
Функция заполняет первые count байт буфера dest символом ch.
|
||
Функция возвращает указатель на буфер dest.
|
||
|
||
|
||
MIN
|
||
|
||
#include <stdlib.h>
|
||
|
||
int min(int arg1, int arg2)
|
||
|
||
Описание.
|
||
|
||
Функция сравнивает два аргумента и вoзвращает значение наименьшегo
|
||
аргумента. Тип аргументoв и тип вoзвращаемoгo значения oдинакoв.
|
||
|
||
|
||
MKDIR
|
||
|
||
#include <direct.h>
|
||
|
||
char mkdir(char *pathname)
|
||
|
||
Описание.
|
||
|
||
Функция создает новый каталог с заданным path-именем. За один вызов
|
||
функции может быть создан только один новый каталог, с именем последней ком-
|
||
поненты pathname.
|
||
Функция возвращает 0, если новый каталог успешно создан. При ошибке, возвра-
|
||
щается -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
MOVMEM
|
||
|
||
#include <mem.h>
|
||
|
||
void movmem(*source, *destin, len)
|
||
|
||
Описание.
|
||
|
||
Функция movmem копирует len байт из source в destin. Если исходная
|
||
и результирующия строка перекрываются, копирование все-равно производится
|
||
корректно.
|
||
|
||
|
||
OPEN
|
||
|
||
#include <io.h>
|
||
|
||
uint open(char *pathname, int oflag)
|
||
uint open(char *pathname, char oflag)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода.
|
||
Функция open открывает файл, определяемый по path-имени и подготавливает
|
||
его к последующему чтению или записи, что определяется посредством oflag.
|
||
Аргумент oflag является целым выражением, состоящим из комбинации одной
|
||
или более манифестных констант, объявленных в <io.h>. Если задано больше
|
||
одной константы, то они объединяются при помощи логического оператора
|
||
ИЛИ "|". Значения аргумента oflag приводятся ниже:
|
||
|
||
O_RDWR Файл открыт одновременно для чтения и записи.
|
||
Если задается этот флаг, может быть выбран
|
||
либо флаг O_RDONLY, либо O_WRONLY.
|
||
|
||
O_RDONLY Файл открыт только для чтения. Если задается
|
||
этот флаг, может быть выбран либо флаг O_RDWR,
|
||
либо O_WRONLY.
|
||
|
||
O_WRONLY Файл открыт только для записи. Если задан этот
|
||
флаг, может быть задан также либо флаг O_RDONLY,
|
||
либо ORDWR.
|
||
|
||
O_TRUNC Существующий файл открыт на чтение и запись, и
|
||
усечен к длине 0. Этот файл должен иметь разре-
|
||
шение на запись. Содержимое файла уничтожается.
|
||
|
||
O_CREAT Новый файл создан и открыт для чтения/записи;
|
||
это не эффективно, если существует файл, опре-
|
||
деляемый по path-имени.
|
||
|
||
O_EXCL Возвращается значение ошибки, если существует
|
||
файл, определяемый по path-имени. Применяется
|
||
только вместе с O_CREATE.
|
||
|
||
O_APPEND Указатель в файле переместить на конец файла.
|
||
Для режимов O_RDONLY, O_TRUNC и O_CREAT не
|
||
имеет смысла.
|
||
|
||
Замечание! O_TRUNC полностью уничтожает содержимое существующего файла,
|
||
поэтому нужно внимательно использовать эту константу.
|
||
|
||
Функция возвращает номер дескриптора файла, если Ok.
|
||
При ошибке, возвращает значение -1 (0FFFFh) и ячейка errno содержит номер
|
||
ошибки.
|
||
|
||
|
||
OUTP
|
||
|
||
#include <conio.h>
|
||
|
||
char outp(uint port, char value);
|
||
|
||
Описание.
|
||
|
||
Функция записывает значение value в порт port. Аргумент port может
|
||
быть любым беззнаковым целым числом в диапазоне от 0 до 65535. Аргумент value
|
||
может быть любым целым числом в диапазоне от 0 до 255.
|
||
Функция возвращает записываемый байт.
|
||
|
||
|
||
PERROR
|
||
|
||
#include <stdlib.h>
|
||
|
||
void perror(char *string)
|
||
|
||
Описание.
|
||
|
||
Функция выводит сообщение об ошибке на stderr (экран). В этом
|
||
сообщении аргумент string выводится первым, затем выводится двоеточие,
|
||
системное сообщение об ошибке от последнего библиотечного вызова, вернув-
|
||
шего ошибку и новая строка. Если аргумент string равен NULL, то функция
|
||
пропускает сообщение string, заданное пользователем и выводит только сис-
|
||
темное сообщение об ошибке, и новую строку.
|
||
Чтобы вывести правильный результат, функция perror должна быть вызвана
|
||
сразу же после библиотечной функции, возвратившей ошибку. Иначе значение
|
||
errno может быть перезаписано при последующих вызовах библиотечных функций.
|
||
Функция не возвращает никакого значения.
|
||
|
||
|
||
PRINTF
|
||
|
||
#include <stdio.h>
|
||
|
||
int printf(char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция выводит данные с преобразованием формата в стандартный поток
|
||
stdout из переменных, определяемых аргументами args. Каждый аргумент должен
|
||
указывать на значение с типом, который соответствует типу, заданному в строке
|
||
формата.
|
||
Функция возвращает число выведенных символов. При ошибке вывода, функция
|
||
возвращает отрицательное значение.
|
||
|
||
|
||
PUTC
|
||
|
||
#include <stdio.h>
|
||
|
||
char putc(char ch, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Записывает символ ch в файл fp. Функция возвращает записанный символ.
|
||
При ошибке, возвращается значение EOF.
|
||
|
||
|
||
PUTCH
|
||
|
||
#include <conio.h>
|
||
|
||
void putch(char *c)
|
||
|
||
Описание.
|
||
|
||
Функция выводит символ прямо на экран.
|
||
|
||
|
||
PUTENV
|
||
|
||
#include <stdlib.h>
|
||
|
||
uint putenv(char *envstring)
|
||
|
||
Описание.
|
||
|
||
Функция добавляет новую переменную окружения. Аргумент envstring
|
||
должен быть указателем на строку следующего формата:
|
||
|
||
VARNAME=VALUE
|
||
|
||
где: VARNAME - имя добавляемой переменной окружения
|
||
VALUE - значение этой переменной
|
||
|
||
Элементы строки должны разделяться символом "=" и строка должна оканчи-
|
||
ваться нулем.
|
||
Функция возвращает 0, если она успешно отработала.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
PUTS
|
||
|
||
#include <stdio.h>
|
||
|
||
char puts(*string)
|
||
|
||
Описание.
|
||
|
||
Функция записывает строку string в стандартный поток вывода stdout,
|
||
заменяя в выходном потоке нулевой символ окончания строки ('\0') символом
|
||
новой строки ('\n').
|
||
Функция всегда возвращает последний записанный символ, которым является сим-
|
||
вол новой строки '\n'.
|
||
|
||
|
||
QSORT
|
||
|
||
#include <stdlib.h>
|
||
|
||
void qsort(*base, nel, size, *compare)
|
||
|
||
void *base; - указатель на таблицу
|
||
unsigned nel; - количество элементов таблицы
|
||
unsigned size; - размер в байтах элемента таблицы
|
||
int (*compare)(); - указатель на функцию сравнения
|
||
|
||
Описание.
|
||
|
||
Функция реализует быструю сортировку таблицы данных. Аргумент
|
||
compare является указателем на процедуру, поставляемую пользователем.
|
||
В процессе сортировки, функция qsort может вызывать эту процедуру один
|
||
или несколько раз, при каждом вызове передавая указатели на два элемента
|
||
массива. Процедура compare должна сравнивать элементы, а затем возвращать
|
||
одно из следующих int-значений:
|
||
|
||
< 0 element1 < element2
|
||
0 element1 = element2
|
||
> 0 element1 > element2
|
||
|
||
После отработки функции qsort, таблица содержит отсортированные элементы.
|
||
В случае ошибки, возвращаемого значения нет.
|
||
|
||
|
||
RAND
|
||
|
||
#include <stdlib.h>
|
||
|
||
int rand()
|
||
|
||
Описание.
|
||
|
||
Функция возвращает псевдослучайное целое в интервале 0..65536.
|
||
Перед вызовом rand, может быть вызвана функция srand для установки начальной
|
||
случайной точки.
|
||
|
||
|
||
READ
|
||
|
||
#include <io.h>
|
||
|
||
size_t read(FD fd, void *buff, count)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода.
|
||
Функция читает число байт count из файла в буфер buff. Операция чтения
|
||
начинается с текущей позиции указателя в файле. Функция возвращает число
|
||
реально прочитанных байтов, которое однако, может быть меньше заявленного
|
||
в count (например встретится конец файла). Мaксимaльнoе числo бaйтoв, кo-
|
||
тoрoе мoжнo прoчитaть из фaйлa зa oдин рaз, рaвнo 65534; пoскoльку 65535
|
||
(OxFFFF) является неoтличимым oт -1, пoэтoму будет вoзврaщенa oшибкa.
|
||
Функция возвращает 0, если делается попытка чтения конца файла.
|
||
При ошибке чтения, возвращается -1 и errno содержит номер ошибки.
|
||
|
||
|
||
REALLOC
|
||
|
||
#include <malloc.h>
|
||
|
||
char *realloc(*ptr, int size)
|
||
|
||
Описание.
|
||
|
||
Функция изменяет размер ранее выделенного блока памяти.
|
||
Аргумент ptr указывает на начало блока. Аргумент size задает новый размер
|
||
блока в байтах. Содержимое блока не изменяется. Если size равен 0, блок
|
||
освобождается и возвращается NULL. Если ptr равен NULL, то отводится
|
||
(по malloc) size байтов памяти и возвращается указатель на этот блок.
|
||
Аргумент ptr может указывать на блок, который должен быть освобожден
|
||
прежде, чем последуют вызовы malloc, calloc, realloc.
|
||
Функция возвращает указатель на перезахваченный блок памяти.
|
||
Блок может быть передвинут, если его размеры изменены, поэтому аргумент
|
||
ptr для функции realloc не обязательно должен быть таким же, как и возвра-
|
||
щаемое значение.
|
||
Возвращается значение NULL, если памяти недостаточно для расширения блока
|
||
к заданному размеру. При этом первоначальный блок остается неизменным.
|
||
|
||
|
||
REFRESHMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char refreshMouse()
|
||
|
||
Описание.
|
||
|
||
Функция выполняет принудительную перерисовку изображения курсора
|
||
мыши на экране не дожидаясь очередного прерывания.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
REMOVE
|
||
|
||
#include <io.h>
|
||
|
||
char remove(char *pathname)
|
||
|
||
Описание.
|
||
|
||
Функция удаляет файл, определенный по pathname. Глобальные символы
|
||
* и ? в имени файла не допускаются. Файлы с атрибутом "только для чтения"
|
||
нельзя удалить данной функцией - предварительно нужно изменить этот атрибут.
|
||
Функция возвращает 0, если файл успешно удален. При ошибке, возвращается -1
|
||
(0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
RENAME
|
||
|
||
#include <io.h>
|
||
|
||
char rename(char *oldname, char *newname)
|
||
|
||
Описание.
|
||
|
||
Функция переименовывает файл или каталог, определенный в имени
|
||
newname. Oldname должно задавать path-имя существующего файла или каталога.
|
||
Newname не определяет имя уже существующего файла или каталога. Функцию
|
||
rename нельзя использовать для перемещения файла из одного каталога в другой,
|
||
указав другое path-имя в аргументе newname.
|
||
Функция возвращает 0, если операция прошла успешно.
|
||
При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
REWIND
|
||
|
||
#include <stdio.h>
|
||
|
||
void rewind(FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция перемещает указатель в файле к началу файла. Вызов функции эквива-
|
||
лентен вызову следующей функции:
|
||
|
||
fseek(FILE *fp, 0, 0, SEEK_SET);
|
||
|
||
с учетом того, что в FILE-структуре fp описателя файла функция rewind очи-
|
||
щает флаг ошибки и индикатор конца файла, а fseek этого не делает.
|
||
Функция не возвращает никакого значения.
|
||
|
||
|
||
RMDIR
|
||
|
||
#include <direct.h>
|
||
|
||
char rmdir(char *pathname)
|
||
|
||
Описание.
|
||
|
||
Функция удаляет пустой каталог, определенный в pathname.
|
||
Нельзя удалить текущий каталог или корневой.
|
||
Функция возвращает 0, если каталог успешно удален.
|
||
При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
SBRK
|
||
|
||
#include <malloc.h>
|
||
|
||
char *sbrk(int n)
|
||
|
||
Описание.
|
||
|
||
Функция выделяет блок длиной n в пределях между указателем свободной
|
||
памяти и указателем стека. Значение n может быть отрицательным, тогда коли-
|
||
чество захваченной памяти уменьшается на n байтов.
|
||
При успешном выделении возвращает указатель на выделенный блок.
|
||
Если памяти недостаточно, возвращает -1 (0FFFFh).
|
||
|
||
|
||
SCANF
|
||
|
||
#include <stdio.h>
|
||
|
||
int scanf(char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция читает данные с преобразованием формата из стандартного
|
||
потока stdin в переменные, определяемые указателями аргументов args.
|
||
Каждый аргумент должен указывать на значение с типом, который соответ-
|
||
ствует типу, заданному в строке формата. Функция использует буфер в об-
|
||
ласти стека, размером 128 байт.
|
||
Функция возвращает число полей, разделенных спец-символами.
|
||
|
||
|
||
SEEK
|
||
|
||
#include <io.h>
|
||
|
||
uint seek(FD fd, uint offset, int type)
|
||
uint seek(FD fd, uint offset, char type)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода.
|
||
Функция устанавливает указатель в файле на новое место расположения, которое
|
||
определяется как смещение offset. Тип перемещения определяется аргументом
|
||
type. Следующая операция в файле выполняется на новом месте расположения
|
||
указателя. Диапазон перемещения указателя не может быть больше 65534. Если
|
||
нужно переместить указатель на большее значение, необходимо использовать
|
||
функцию lseek. Аргумент type может быть одной из следующих констант, опре-
|
||
деленных в <io.h>
|
||
|
||
SEEK_SET от начала файла
|
||
SEEK_CUR от текущей позиции указателя в файле
|
||
SEEK_END от конца файла
|
||
|
||
Функция возвращает значение нового положения указателя. При ошибке возвра-
|
||
щается -1 и errno содержит номер ошибки. Установка указателя за пределами
|
||
файла, ошибки не вызывает. Для устройств, не приспособленных к поиску (таких
|
||
как терминалы и принтеры), возвращаемое значение -1.
|
||
|
||
|
||
SETDATE
|
||
|
||
#include <dos.h>
|
||
|
||
void setdate(struct date *date)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает новую системную дату, используя данные
|
||
структуры date. Структура date описана в <dos.h>.
|
||
|
||
|
||
SETDISK
|
||
|
||
#include <dos.h>
|
||
|
||
void setdisk(char diskno)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает новый текущий диск, номер которого
|
||
задан в diskno. Номер диска соответствует: 0=A, 1=B,... и т.д.
|
||
|
||
|
||
SETJMP
|
||
|
||
#include <setjmp.h>
|
||
|
||
int setjmp(env)
|
||
|
||
jmp_buf env - переменная, в которой хранится сохраняемое
|
||
окружение.
|
||
|
||
Описание.
|
||
|
||
Функция setjmp сохраняет состояние стека, который может быть после-
|
||
довательно восстановлен использованием функции longjmp.
|
||
Функции setjmp и longjmp обеспечивают возможность выполнения нелокального
|
||
(nonlocal) перехода и обычно используются для передачи управления к обработке
|
||
ошибок для восстановления кода в ранее вызванной процедуре (без использования
|
||
обычного вызова), для возврата условных обозначений. Вызов setjmp активизирует
|
||
сохранение текущего состояния стека в env. Последующий вызов longjmp восста-
|
||
навливает сохраненное состояние и возвращает управление на указатель (точку
|
||
входа), непосредственно следующий за соответствующим вызовом setjmp.
|
||
После сохранения состояния стека функция setjmp возвращает значение 0.
|
||
Возвращаемого значения в случае ошибки нет.
|
||
|
||
|
||
SETCURSMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char setCursMouse(MSCURS *p)
|
||
|
||
Описание.
|
||
|
||
Функция загружает новое изображение курсора мыши в драйвер и задает
|
||
активную точку изображения. Перед вызовом функции, должна быть заполнена
|
||
структура MSCURS, определенная в <mouse.h>.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
SETSENSMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char setSensMouse(MSSENS *p)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает значения чувствительности перемещения мыши
|
||
по вертикали и горизонтали. Перед вызовом функции, должна быть заполнена
|
||
структура MSSENS, определенная в <mouse.h>.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
SETGPOSMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char setGPosMouse(int x, int y)
|
||
|
||
Описание.
|
||
|
||
Функция перемещает курсор мыши в заданные графические координаты.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
SETPOSMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char setPosMouse(int col, int line)
|
||
|
||
Описание.
|
||
|
||
Функция перемещает курсор мыши в заданные текстовые координаты.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
SETTXTMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char setTxtMouse(MSTXT *p)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает символ и атрибут курсора мыши для
|
||
текстового режима.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
SETMEM
|
||
|
||
#include <mem.h>
|
||
|
||
void setmem(*addr, len, char value)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает первые len байт блока addr в значение value.
|
||
|
||
|
||
SETTIME
|
||
|
||
#include <dos.h>
|
||
|
||
void settime(struct time *time)
|
||
|
||
Описание.
|
||
|
||
Функция устанавливает новое системное время, используя данные
|
||
структуры time. Структура time описана в <dos.h>.
|
||
|
||
|
||
SHOWMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char showMouse(void)
|
||
|
||
Описание.
|
||
|
||
Функция выводит на экран курсор мыши, отслеживает все перемещения
|
||
курсора и перерисовывает его.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
SLEEP
|
||
|
||
#include <dos.h>
|
||
|
||
void sleep(uint seconds)
|
||
|
||
Описание.
|
||
|
||
Функция приостанавливает выполнение программы на seconds секунд.
|
||
Значение seconds может находиться в диапазоне 0..65534. После выполнения
|
||
функции, прерывания остаются включенными.
|
||
|
||
|
||
SPRINTF
|
||
|
||
#include <stdio.h>
|
||
|
||
int sprintf(char buffer, char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция преобразует формат и выводит наборы символов и значений
|
||
в buffer. В конец выводимой строки записывается нуль. Каждый аргумент
|
||
должен указывать на значение с типом, который соответствует типу, задан-
|
||
ному в строке формата.
|
||
Функция возвращает количество символов, записанных в buffer.
|
||
|
||
|
||
SRAND
|
||
|
||
#include <stdlib.h>
|
||
|
||
void srand(seed)
|
||
|
||
Описание.
|
||
|
||
Функция srand устанавливает начальную точку для генерации множества
|
||
псевдослучайных целых. В качестве аргумента seed для переустановки генератора
|
||
используется 1. Любое другое значение seed устанавливает генератор в началь-
|
||
ную случайную точку. Возвращаемого значения нет.
|
||
|
||
|
||
SSCANF
|
||
|
||
#include <stdio.h>
|
||
|
||
int sscanf(char *buffer, char *format, arg1, arg2, ...)
|
||
|
||
Описание.
|
||
|
||
Функция читает данные с преобразованием формата из buffer, в пере-
|
||
менные, определяемые указателями аргументов args. Каждый аргумент должен
|
||
указывать на значение с типом, который соответствует типу, заданному в
|
||
строке формата.
|
||
Функция возвращает число полей, разделенных спец-символами.
|
||
|
||
|
||
STRCAT
|
||
|
||
#include <string.h>
|
||
|
||
char *strcat(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция добавляет s2 к s1, завершая строку s1 нулевым символом.
|
||
Функция возвращает указатель на s1.
|
||
|
||
|
||
STRCHR
|
||
|
||
#include <string.h>
|
||
|
||
char *strchr(*string, ch)
|
||
|
||
Описание.
|
||
|
||
Функция находит первое вхождение ch в string. Символ ch может быть
|
||
нулевым символом. Нулевой символ окончания string также включается в поиск.
|
||
Функция возвращает указатель на первое вхождение ch в string.
|
||
Возвращается NULL, если символ не найден.
|
||
|
||
|
||
STRCMP
|
||
|
||
#include <string.h>
|
||
|
||
int strcmp(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция производит последовательное регистро-зависимое сравнение
|
||
символов строк s1 и s2, и продолжает это, пока они совпадают, либо пока
|
||
одна из строк не закончится.
|
||
Функция возвращает значение, указывающее на соотношение этих строк:
|
||
|
||
< 0 s1 < s2
|
||
= 0 s1 = s2
|
||
> 0 s1 > s2
|
||
|
||
|
||
STRCPY
|
||
|
||
#include <string.h>
|
||
|
||
char *strcpy(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция копирует s2 в s1 (включая 0-й символ окончания строки).
|
||
Функция возвращает указатель на s1.
|
||
|
||
|
||
STRCSPN
|
||
|
||
#include <string.h>
|
||
|
||
size_t strcspn(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция находит первую часть строки в s1, не входящую в строку s2.
|
||
Возвращает длину части строки s1, состоящей из символов, не найденных в
|
||
строке s2. Если ни один из символов строки s1 не найден в s2, возвращается
|
||
общая длина строки s1 без завершающего нуля.
|
||
|
||
|
||
STRERR
|
||
|
||
#include <string.h>
|
||
|
||
char *strerr(char errno)
|
||
|
||
Описание.
|
||
|
||
Функция strerr (аналогична strerror) преобразует errno в стрoку
|
||
системного сooбщения oб oшибке и вoзврaщaет укaзaтель нa эту стрoку.
|
||
Функция, в отличие от perror, не выводит никаких сooбщений. Для вывода
|
||
сообщения требуется вызвaть функцию вывoдa (например cprintf).
|
||
Номер ошибки хранится в переменной errno, которая объявлена на внешнем
|
||
уровне и используется как индекс в массиве системных сообщений.
|
||
Системные сообщения об ошибках доступны через переменную _errlst_,
|
||
являющуюся массивом системных сообщений об ошибках.
|
||
Чтобы вернуть правильный результат, функция strerr должна быть вызвана
|
||
сразу после библиотечной функции, возвратившей ошибку. Иначе, значение
|
||
errno может быть перезаписано при последующих вызовах библиотечных функ-
|
||
ций. Для любого значения errno, не используемого в ДОС, функция strerr
|
||
возвращает указатель на пустую строку.
|
||
|
||
|
||
STRLEN
|
||
|
||
#include <string.h>
|
||
|
||
size_t strlen(*string)
|
||
|
||
Описание.
|
||
|
||
Функция возвращает в байтах длину строки string, причем нулевой
|
||
символ окончания строки, в размер строки не входит.
|
||
|
||
|
||
STRLWR
|
||
|
||
#include <string.h>
|
||
|
||
char *strlwr(*string)
|
||
|
||
Описание.
|
||
|
||
Функция преобразовывает любые буквы верхнего регистра строки string,
|
||
заканчивающейся нулем, в буквы нижнего регистра. Другие символы не рассмат-
|
||
риваются. Функция возвращает указатель на строку string.
|
||
|
||
|
||
STRNCAT
|
||
|
||
#include <string.h>
|
||
|
||
char *strncat(*s1, *s2, count)
|
||
|
||
Описание.
|
||
|
||
Функция добавляет count символов строки s2 в конец строки s1,
|
||
завершая строку s1 нулевым символом. В s1 должно быть достаточно места
|
||
для размещения результирующей строки. Функция возвращает указатель на s1.
|
||
|
||
|
||
STRNCMP
|
||
|
||
#include <string.h>
|
||
|
||
int strncmp(*s1, *s2, uint count)
|
||
|
||
Описание.
|
||
|
||
Функция производит последовательное регистро-зависимое сравнение
|
||
символов строк s1 и s2. Количество сравниваемых символов задается в count.
|
||
Если одна из строк заканчивается, сравнение прекращается.
|
||
Функция возвращает значение, указывающее на соотношение этих строк:
|
||
|
||
< 0 s1 < s2
|
||
= 0 s1 = s2
|
||
> 0 s1 > s2
|
||
|
||
|
||
STRNCPY
|
||
|
||
#include <string.h>
|
||
|
||
char *strncpy(*s1, *s2, count)
|
||
|
||
Описание.
|
||
|
||
Функция копирует точно count символов строки s2 в строку s1. Если
|
||
count меньше длины s2, нулевой символ окончания строки не добавляется к
|
||
строке s1. Если count больше длины s2, то s1 заполняется нулевыми символами,
|
||
вплоть до достижения длины count. Функция возвращает указатель на s1.
|
||
|
||
|
||
STRPBRK
|
||
|
||
#include <string.h>
|
||
|
||
char *strpbrk(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция находит первое вхождение в строке s1 любого символа из
|
||
строки s2. Нулевой символ окончания при поиске не рассматривается.
|
||
Функция возвращает указатель на первое вхождение символа из s2 в строке
|
||
s1. При отсутствии общих символов в s1 и s2, возвращается NULL.
|
||
|
||
|
||
STRRCHR
|
||
|
||
#include <string.h>
|
||
|
||
char *strrchr(*string, ch)
|
||
|
||
Описание.
|
||
|
||
Функция находит последнее вхождение символа ch в строке string.
|
||
Нулевой символ окончания строки string также включается в поиск.
|
||
Функция возвращает указатель на последнее вхождение символа ch в string.
|
||
Если заданный символ не найден, возвращается NULL.
|
||
|
||
|
||
STRSPN
|
||
|
||
#include <string.h>
|
||
|
||
size_t strspn(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция возвращает длину совпадающей части строки s1, которая
|
||
полностью состоит из символов, найденных в строке s2. Нулевой символ
|
||
окончания строки s2 не рассматривается. Если строка s1 начинается с сим-
|
||
вола, не входящего в строку s2, возвращается 0.
|
||
|
||
|
||
STRSTR
|
||
|
||
#include <string.h>
|
||
|
||
char *strstr(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция возвращает указатель на первое вхождение строки s2 в
|
||
строку s1. Функция возвращает NULL, если s2 не была найдена. Если длина
|
||
строки s2 равна 0, возвращается s1.
|
||
|
||
|
||
STRTOK
|
||
|
||
#include <string.h>
|
||
|
||
char *strtok(*s1, *s2)
|
||
|
||
Описание.
|
||
|
||
Функция находит в строке s1 токен, отделенный одним (или более)
|
||
ограничителем из множества символов-ограничителей строки s2. Найденный
|
||
токен в строке s1 оканчивается нулем. Для того, чтобы прочитать следующий
|
||
токен из s1, функция strtok должна вызываться с NULL-значением для аргу-
|
||
мента s1. Аргумент NULL s1 вызывает strtok на поиск следующего знака в
|
||
предыдущей строке символов.
|
||
Множество ограничителей в строк s2, от вызова к вызову, может быть различ-
|
||
ным, так что s2 может принимать любые значения. При каждом вызове, функция
|
||
возвращает указатель на найденный токен строки s1, каждый раз продвигаясь
|
||
вперед по строке s1.
|
||
Функция возвращает указатель NULL, когда больше нет токенов в строке s1.
|
||
|
||
|
||
STRTOL
|
||
|
||
#include <stdlib.h>
|
||
|
||
int strtol(char *s, char **eptr, int base)
|
||
|
||
char *s указатель на строку
|
||
char **eptr указатель на конец просмотра
|
||
int base используемое основание числа
|
||
|
||
Описание.
|
||
|
||
Функция преобразует символьную строку s в long-значение, эквива-
|
||
лентное числу с заданным base основанием. Функция прекращает чтение строки,
|
||
как только встретится символ, который не может быть частью числа - это мо-
|
||
жет быть нулевой символ '\0' в конце строки или первый цифровой символ, ко-
|
||
торый больше или равен base. Если eptr не равен NULL, *eptr указывает на тот
|
||
символ, на котором останавливается просмотр.
|
||
Функция strtol предполагает, что s указывает на строку следующей структуры:
|
||
|
||
[whitespace][sign][0][x][digits]
|
||
|
||
Если base лежит между 2 и 36, это значение используется, как основание сис-
|
||
темы счисления данного числа. Если base равно 0, начальные символы строки,
|
||
на которые указывает s, используются для определения основания. Если первый
|
||
символ равен 0 и второй - одна из цифр от 1 до 7, то строка интерпретируется
|
||
как восьмеричное целое. Если первый символ равен 0, а второй 'x' или 'X',
|
||
тогда строка понимается как шестнадцатеричное целое. Если первый символ при-
|
||
надлежит к цифрам 1..9, то строка понимается как десятичное целое.
|
||
Функция strtol возвращает значение преобразованной строки, если не было
|
||
переполнения или потери результата.
|
||
|
||
|
||
STRUPR
|
||
|
||
#include <string.h>
|
||
|
||
char *strupr(*string)
|
||
|
||
Описание.
|
||
|
||
Функция преобразовывает любые буквы нижнего регистра строки string,
|
||
заканчивающейся нулем, в буквы верхнего регистра. Другие символы не рассмат-
|
||
риваются. Функция возвращает указатель на строку string.
|
||
|
||
|
||
SYSENV
|
||
|
||
#include <stdlib.h>
|
||
|
||
char *sysenv(char *sysenv)
|
||
|
||
Описание.
|
||
|
||
Функция получает системное окружение. Аргумент sysenv должен быть
|
||
указателем на буфер, предназначенный для данных системного окружения. Размер
|
||
буфера должен быть достаточным, чтобы вместить все данные системного окруже-
|
||
ния. Формат данных в буфере следующий:
|
||
|
||
- строка каждой переменной окружения заканчивается на нуль.
|
||
- в конце строки последней переменной окружения, стоит дополнительный
|
||
нуль, показывающий, что дальше переменных нет.
|
||
|
||
Пример (в асмовом варианте):
|
||
|
||
sysenv: db "PATH=c:\fn;c:\zx",0
|
||
db "SOLID=H",0
|
||
db 0
|
||
|
||
Функция возвращает указатель на буфер sysenv. При ошибке, возвращается
|
||
значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
TELL
|
||
|
||
#include <io.h>
|
||
|
||
uint tell(FD fd)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода. Функция возвращает текущую
|
||
позицию указателя в файле. Позиция выражается как число байтов от начала
|
||
файла. Значение возвращаемого указателя не может быть больше 65534. Если
|
||
нужно получить большее значение, необходимо использовать функцию ltell.
|
||
При ошибке возвращается -1 и errno содержит номер ошибки.
|
||
Для устройств, не приспособленных к поиску (таких как терминалы и принтеры),
|
||
возвращаемое значение -1.
|
||
|
||
|
||
TOLOWER
|
||
|
||
#include <ctype.h>
|
||
|
||
char tolower(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция преобразует прописной символ ch в строчный.
|
||
|
||
|
||
TOUPPER
|
||
|
||
#include <ctype.h>
|
||
|
||
char toupper(char ch)
|
||
|
||
Описание.
|
||
|
||
Функция преобразует строчный символ ch в прописной.
|
||
|
||
|
||
UNGETC
|
||
|
||
#include <stdio.h>
|
||
|
||
char ungetc(char ch, FILE *fp)
|
||
|
||
Описание.
|
||
|
||
Функция относится к функциям высоко-уровневого ввода/вывода.
|
||
Функция возвращает символ ch в файл. Последующая операция чтения из
|
||
файла начинается с символа ch.
|
||
При удачном завершении, функция возвращает ch. При ошибке возвращается
|
||
EOF, говорящее о неудачном возвращении заданного символа.
|
||
|
||
|
||
UNLINK
|
||
|
||
#include <io.h>
|
||
|
||
char unlink(char *pathname)
|
||
|
||
Описание.
|
||
|
||
Функция удаляет файл, определенный по pathname. Глобальные символы
|
||
* и ? в имени файла не допускаются. Файлы с атрибутом "только для чтения"
|
||
нельзя удалить данной функцией - предварительно нужно изменить этот атрибут.
|
||
Функция возвращает 0, если файл успешно удален. При ошибке, возвращается -1
|
||
(0FFh) и errno содержит номер ошибки.
|
||
|
||
|
||
VMODEMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char vmodeMouse(char video_mode)
|
||
|
||
Описание.
|
||
|
||
Функция информирует драйвер мыши о смене режима экрана. Номера
|
||
режимов соответствуют функции установки режима экрана.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
WRITE
|
||
|
||
#include <io.h>
|
||
|
||
size_t write(FD fd, void *buff, count)
|
||
|
||
Описание.
|
||
|
||
Функция низко-уровневого ввода/вывода. Функция записывает число байт
|
||
count из буфера buff в файл. Операции записи начинаются с текущей позиции
|
||
указателя в файле. Если файл открыт для добавления, операции выполняются в
|
||
конец файла. После осуществления операций записи, указатель в файле увеличи-
|
||
вается на количество реально записанных байтов. Макс. число записываемых бай-
|
||
тов в файл равно 65534; поскольку число 65535 является неотличимым от -1, то
|
||
возвращается ошибка.
|
||
Функция возвращает число реально записанных байт. При ошибке записи возвраща-
|
||
ется значение -1 и в errno устанавливается номер ошибки.
|
||
|
||
|
||
XLIMMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char xLimMouse(uint minx, uint maxx)
|
||
|
||
Описание.
|
||
|
||
Задание горизонтальных границ перемещения курсора.
|
||
Функция задает левую минимальную и правую максимальную графические
|
||
координаты, в которых может перемещаться курсор мыши по горизонтали.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|
||
|
||
|
||
YLIMMOUSE
|
||
|
||
#include <mouse.h>
|
||
|
||
char yLimMouse(int miny, int maxy)
|
||
|
||
Описание.
|
||
|
||
Задание вертикальных границ перемещения курсора.
|
||
Функция задает верхнюю минимальную и нижнюю максимальную графические
|
||
координаты, в которых может перемещаться курсор мыши по вертикали.
|
||
При ошибке, возвращается значение -1 и errno содержит номер ошибки.
|