Последняя редакция: 3.09.2004 ОПИСАНИЕ ФУНКЦИЙ БИБЛИОТЕКИ СИ Примечание. Для функций форматного ввода/вывода, строка указанного формата не преобразу- ется и в выходной поток не передается, а становится спецификатором преобразо- ваний, выполняемых по следующим правилам: % [-] [[o]w] [.n]c Знак "-" указывает на то, что данное поле подвергается сдвигу влево (обычно поля сдвигаются вправо). Знак "w" обозначает максимальное ограничение поля по ширине. Если перед знаком "w" поставлен нуль, то данное поле в отличие от пробела имеет символ расширения "нуль". Знак "-n" действует только в том случае, когда имеется преобразователь строк (%s). С помощью знака ".n" устанавливается максимальное число символов, выводимых в одной строке. Символ "с" может принимать одно из следующих значений: d - десятичное число со знаком; u - десятичное число без знака; o - восьмеричное число без знака; x - шестнадцатиричное (без знака); s - символьная строка; c - символ. Информация, в составе которой отсутствуют приведенные выше символы преоб- разований, передается в выводимый поток без изменений. Например, с помощью последовательности "%%" можно вывести один символ процента "%". ABORT #include void abort() Описание. Функция выводит на экран сообщение "Abnormal program termination" (непредвиденное завершение программы) и завершает вызванный процесс без обновления буферов файлов. ABS #include int abs(int n); Описание. Функция abs возвращает значение n, равное абсолютной величине n. ABSREAD #include char absread(char disk, int nsect, char count, char buffer) disk - номер диска nsect - номер начального сектора count - кол-во читаемых секторов buffer - адрес буфера под считываемые данные Описание. Абсолютное чтение с диска. Функция считывает в буфер один или несколько секторов с заданным начальным относительным номером. Секторы нумеруются с 0 от начала логического (не физического!) диска. К примеру, загрузочный сектор данного логического диска имеет номер 0, далее первая копия FAT начинается с сектора номер 1 и т.д. Функция возвращают 0 при успешном завершении операции. В случае ошибки возвращается -1 (0FFh) и errno содержит номер ошибки. ABSWRITE #include char abswrite(char disk, int nsect, char count, char buffer) disk - номер диска nsect - номер начального сектора count - кол-во записываемых секторов buffer - адрес буфера данных Описание. Абсолютная запись на диск. Функция записывает из буфера один или несколько секторов с заданным начальным относительным номером. Секторы нумеруются с 0 от начала логического (не физического!) диска. К примеру, загрузочный сектор данного логического диска имеет номер 0, далее первая копия FAT начинается с сектора номер 1 и т.д. Функция возвращают 0 при успешном завершении операции. В случае ошибки возвращается -1 (0FFh) и errno содержит номер ошибки. ATEXIT #include 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 int atoi(*string) Описание. Функция преобразует символьную строку string в целое значение. Исходная строка string представляет собой последовательность символов, которые могут быть интерпретированы как числовое значение определенного типа. Функция прекращает чтение исходной строки, как только появится первый символ, который не может быть воспринят как часть числа (им может быть нулевой символ, завершающий строку). Функция возвращает значение int типа. Возвращаемое значение равно 0, если вход не может быть преобразован в значение данного типа. В случае переполнения, возвращаемое значение не определено. BDOS #include 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 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 или char *calloc(int n, int size) Описание. Функция захватывает пространство для хранения массива из n элементов, каждый размером size байт. Каждый элемент инициализируется в 0. Функция возвращает указатель на захваченное пространство. Если недостаточно памяти, возвращается значение NULL. CGETS #include char *cgets(*str) Описание. Функция читает строку символов прямо с консоли, запоминает строку и ее длину в аргументе str. Аргумент str должен быть указателем на массив сим- волов. Первый элемент массива - str[0] должен содержать максимальную длину (в символах) читаемой строки. Массив должен быть достаточно большим, чтобы вместить строку и заключительный нуль. Функция продолжает считывать символы, пока не будет прочитан код новой строки (0x0D) или заданное количество сим- волов. При этом, код новой строки заменяется на нуль. Строка запоминается с str[2] элемента массива. Во втором элементе массива str[1] запоминается действительная длина строки. Функция возвращает указатель на начало строки, находящейся в str[2]. В случае ошибки, возвращаемое значение не определено. CHDIR #include char chdir(char *pathname) Описание. Функция изменяет текущий каталог и текущий диск, если он указан в pathname. Если путь начинается с "\" - это означает путь от корневого каталога, иначе от текущего. Pathname должен ссылаться на существующий каталог. Функция возвращает значение 0, если рабочий каталог успешно изменен. При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки. CLEARERR #include void clearerr(FILE *fp) Описание. Функция clearerr относится к высоко-уровневому вводу/выводу. Функция сбрасывает в FILE-структуре файла 4-й бит "индикатора ошибки" и 5-й бит "индикатора конца файла". Индикаторы ошибок автоматически не очищаются: если для файла установлен индикатор ошибки, то операции над файлом будут возвращать значения ошибок до тех пор, пока не будут вызваны функции clearerr или rewind. CLRSCR #include void clrscr() Описание. Функция производит очищение экрана. CPRINTF #include int cprintf(char *format, arg1, arg2, ...) Описание. Функция выводит с преобразованием формата наборы символов и значений прямо на экран. Каждый аргумент должен указывать на значение с типом, который соответствует типу, заданному в строке формата. Функция возвращает число выведенных символов. При ошибке вывода, функция возвращает отрицательное значение. CPUTS #include void cputs(char *str) Описание. Функция выводит текстовую строку прямо на экран. Строка должна оканчиваться нулем. CREAT #include 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 void dec8(char value) Описание. Функция выводит аргумент value в десятичном формате, без ведущих нулей. Диапазон выводимых значений 0..255. Функция не возвращает никакого значения. DEC16 #include void dec16(uint value) Описание. Функция выводит аргумент value в десятичном формате, без ведущих нулей. Диапазон выводимых значений 0..65535. Функция не возвращает никакого значения. DEC32 #include void dec32(uint high, uint low) Описание. Функция выводит два 16-ти битных аргумента high (ст.разряд) и low (мл.разряд) как одно значение. Вывод происходит в десятичном формате, без ведущих нулей. Диапазон выводимых значений 0...4 млрд. Функция не возвращает никакого значения. DISABLE #include void disable() Описание. Функция запрещает прерывания. DIV #include struct divt *div(uint num1, uint num2) Описание. Функция делит num1 на num2, возвращая частное и остаток. Возвращает структуру типа div_t, определенную в . ENABLE #include void enable() Описание. Функция разрешает прерывания. _EXIT #include void _exit(int code) Описание. Функция завершает вызванный процесс без обновления буферов потока. Значение code обычно устанавливается в 0 для указания нормального выхода и устанавливается в любое другое значение для определения ошибки. Поскольку вызов _exit не возвращает значения, то мл. байт code является кодом возв- рата для родительского процесса. EXIT #include void exit(int code) Описание. Функция завершает вызванный процесс. Перед завершением процесса, функция сбрасывает все буферы в файлы и закрывает все открытые файлы. Перед выходом в операционую систему, функция предварительно вызывает на отработку зарегистрированные функции "exit function" (отрабатывающие перед выходом в ДОС). Значение code обычно устанавливается в 0 для указания нормального вы- хода и устанавливается в любое другое значение для определения ошибки. Поскольку вызов exit не возвращает значения, то мл. байт code является кодом возврата для родительского процесса. FCLOSE #include char fclose(FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция сбрасывает буфер в файл и закрывает его. Данной функцией можно закры- вать только те файлы, работа с которыми производится в рамках высоко-уровне- вого ввода/вывода. Для закрытия файлов в рамках низко-уровневого ввода/вывода, необходимо применять функцию close. Функция возвращает 0 при успешном завершении. При ошибках возвращается значение -1 (0FFh) и errno содержит номер ошибки. FCLOSALL #include void fclosall() Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция сбрасывает все буферы в файлы и закрывает все открытые файлы. FDOPEN #include 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 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 char fflush(FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция освобождает (записывает) буфер открытого файла. Применяется для сох- ранения данных на диске, перед выполнением операции, могущей сломать систему. Если файл открыт для записи, буфер сбрасывается в файл. Если файл открыт для чтения, буфер очищается. После вызова функции, файл остается открытым. Функция возвращает 0, если буфер успешно обновлен. Это же значение возвраща- ется, когда поток не имеет буфера или когда он открыт только для чтения. В случае возникновения ошибки, возвращается значение EOF. FGETC #include char fgetc(FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция читает текущий символ из потока fp и ставит указатель (если он есть) на следующий символ. Возвращается считанный символ. В случае возникновения ошибки или достижения конца файла, возвращается значе- ние EOF. Однако, значение EOF может быть воспринято как целая величина, тогда нужно использовать функции ferror и feof для проверки ошибки или конца файла. FGETPOS #include 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 char *fgets(char *string, int maxlen, FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция читает строку из входного потока fp и располагает ее в string. Символы считываются, начиная с текущей позиции fp и до символа новой строки '\n' или до конца потока, либо пока число считанных символов не станет равным maxlen-1. Строка размещается в string, затем в ее конец ставится нуль. Символ новой строки также включается в string. Если в начале считывания maxlen равнялось 1, то string будет пустой "". Функция возвращает указатель на строку string. При ошибке или конце файла, возвращается NULL. FNEXT #include char fnext(FIND *ffblk) Описание. Функция производит поиск следующего совпадающего файла. При каждом вызове, функция возвращает одно имя файла, до тех пор, пока параметры файла будут подходить под заданные параметры поиска. Аргумент ffblk должен указы- вать на структуру (определенную в ), предварительно заполненную функ- цией ffirst. Функция возвращает 0 при успешном завершении поиска. Если файл не найден или в имени файла встретилась какая-либо ошибка, возвращается -1 и errno содержит номер ошибки. FOPEN #include FILE *fopen(pathname, mode) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция открывает файл с именем pathname. Символы в строке mode определяют тип доступа к файлу. Функция возвращает указатель на структуру открытого файла. При ошибке, возв- ращается NULL. FPRINTF #include int fprintf(FILE *fp, char *format, arg1, arg2, ...) Описание. Функция выводит данные с преобразованием формата в файл *fp из пере- менных, определяемых указателями аргументов args. Каждый аргумент должен ука- зывать на значение с типом, который соответствует типу, заданному в строке формата. Функция возвращает число выведенных символов. При ошибке вывода, функция возвращает отрицательное значение. FPUTC #include char fputc(char ch, FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Записывает символ ch в файл fp. Функция возвращает записанный символ. При ошибке, возвращается значение EOF. FPUTS #include char fputs(char *string, FILE *fp) Описание. Функция копирует строку в конец файла fp. Нулевой символ окончания строки '\0' не копируется. Функция возвращает последний записанный символ. При ошибке возвращается значение EOF. FREAD #include uint fread(buffer, size, count, FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция читает объекты размера size по счетчику count из входного файла fp и располагает их в буфере buffer. Возвращает число реально прочитанных объектов. Примечание. При чтении из stdin, код 0x0D заменяется на код 0x0A (прoгoн бумаги) и нет возможности редактировать вводимые данные. Нажатие на комби- нацию клавиш Ctrl+Z или Ctrl+C воспринимается как конец ввода данных. Для ввода строки символов из stdin лучше использовать функцию gets, допус- кающую редактирование вводимых данных. FREE #include или void free(char *ptr) Описание. Функция освобождает блок памяти. Аргумент ptr указывает на ранее захваченный блок памяти посредством вызова malloc, calloc, realloc. Возвращаемого значения нет. FREOPEN #include 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 int fscanf(FILE *fp, char *format, arg1, arg2, ...) Описание. Функция читает данные с преобразованием формата из файла *fp, в пере- менные, определяемые указателями аргументов args. Каждый аргумент должен ука- зывать на значение с типом, который соответствует типу, заданному в строке формата. Функция использует буфер в области стека, размером 128 байт. Функция возвращает число полей, разделенных спец-символами. При достижении конца файла, возвращается EOF. FSEEK #include struct fpoint *fseek(FILE *fp, high, low, type) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция устанавливает указатель в файле на новое место расположения, опреде- ляемое аргументами high и low, соответственно старшая и младшая часть 32-х битного значения перемещения. Тип перемещения определяется аргументом type. Следующая операция в файле выполняется на новом месте расположения указателя. Аргумент type может быть одной из следующих констант, определенных в SEEK_SET от начала файла SEEK_CUR от текущей позиции указателя в файле SEEK_END от конца файла Функция возвращает структуру f_point, определенную в "types.h". При ошибке возвращается -1 и errno содержит номер ошибки. Установка указателя за пределами файла, ошибки не вызывает. Для устройств, не приспособленных к поиску (таких как терминалы и принтеры), возвращается значение -1. FSETPOS #include 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 struct fpoint *ftell(FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция ftell получает текущую позицию указателя в файле. Позиция выражается как число байтов от начала файла. Функция возвращает структуру f_point, опре- деленную в . При ошибке возвращается -1 и errno содержит номер ошибки. Для устройств, не приспособленных к поиску (таких как терминалы и принтеры), возвращается значе- ние -1. FWRITE #include uint fwrite(buffer, size, count, FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция записывает объекты размера size по счетчику count из буфера buffer в выходной файл fp. Возвращает число реально записанных объектов. GETC #include char getc(FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция читает текущий символ из потока fp и ставит указатель (если он есть) на следующий символ. Возвращается считанный символ. В случае возникновения ошибки или достижения конца файла, возвращается значе- ние EOF. Однако, значение EOF может быть воспринято как целая величина, тогда нужно использовать функции ferror и feof для проверки ошибки или конца файла. GETCH #include char getch() Описание. Функция читает символ с клавиатуры без отображения на экране. GETCHE #include char getche() Описание. Функция читает символ с клавиатуры с отображением на экране. При нажатии на Ctrl+Z или Ctrl+C, возвращает значение -1. GETCURSMOUSE #include MSCURS *getCursMouse(char *buffer) Описание. Функция получает изображение курсора из драйвера мыши и сохраняет его в буфере buffer. Функция возвращает указатель на заполненную структуру MSCURS, определенную в . При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки. GETSENSMOUSE #include MSSENS *getSensMouse() Описание. Функция возвращает значения чувствительности перемещения мыши по вертикали и горизонтали. Функция возвращает указатель на заполненную структуру MSSENS, определенную в . При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки. GETGSTATMOUSE #include MSGSTAT *getGStatMouse() Описание. Функция возвращает текущие графические координаты курсора мыши и состояние ее кнопок. Функция возвращает указатель на структуру MSGSTAT, определенную в . При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки. GETSTATMOUSE #include MSSTAT *getStatMouse() Описание. Функция возвращает текущие текстовые координаты курсора мыши и состояние ее кнопок. Функция возвращает указатель на структуру MSSTAT, определенную в . При ошибке, возвращается значение -1 (0FFFFh) и errno содержит номер ошибки. GETCWD #include 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 void getdate(struct date *date) Описание. Функция возвращает системную дату в заполненной структуре date. Структура date описана в . GETDISK #include char getdisk() Описание. Функция возвращает номер текущего диска. Номер диска соответствует: 0=A, 1=B,... и т.д. GETENV #include char *getenv(char *varname) Описание. Функция возвращает для заданного имени переменной окружения varname указатель на значение (строку) этой переменной. Максимальная длина строки значения переменной окружения должна быть не более 255 байт. Возвращается значение NULL, если заданная переменная на текущий момент не определена. При ошибке также возвращается NULL, но в errno будет содержаться номер ошибки. GETS #include char *gets(char buffer[255]) Описание. Функция читает из стандартного потока stdin строку и запоминает ее в своем буфере buffer. Входная строка читается до тех пор, пока не встрерится код новой строки "0x0D" или число введенных символом не превысит 254. В конец строки вместо кода 0x0D заносится нуль, в отличии от функции fgets, которая сохраняет символ 0x0D. Функция возвращает указатель на буфер. В случае ошибки, возвращаемое значение не определено. Формат строки в буфере следующий: +0: - байт, содержащий длину прочитанной строки, без концевого нуля. +1: - начало строки. GETTIME #include void gettime(struct time *time) Описание. Функция возвращает системное время в заполненной структуре time. Структура time описана в . GOTOXY #include void gotoxy(int x, int y) Описание. Функция устанавливает курсор на X,Y позицию. HARDMOUSE #include char hardMouse() Описание. Обработчик аппаратного прерывания от мыши. По приходу прерывания от мыши, вызывается данная функция драйвера. В случае, когда требуется работа подпрограммы при запрещенных прерываниях, используйте данную функцию, для избежания потерь пакетов данных от мыши. При ошибке, возвращается значение -1 и errno содержит номер ошибки. HEX8 #include void hex8(char value) Описание. Функция выводит в шестнадцатеричном формате значение value. Диапазон выводимых значений 0x00..0xFF. Возвращаемого значения нет. HEX16 #include void hex16(uint value) Описание. Функция выводит в шестнадцатеричном формате значение value. Диапазон выводимых значений 0x0000..0xFFFF. Возвращаемого значения нет. HEX32 #include void hex32(uint high, uint low) Описание. Функция выводит в шестнадцатеричном формате 16-ти битные значения аргументов high (ст.разряд) и low (мл.разряд) как одно число. Возвращаемого значения нет. HIDEMOUSE #include char hideMouse(void) Описание. Функция убирает курсор мыши с экрана, но драйвер продолжает отслеживание перемещения мыши и нажатие на кнопки. При ошибке, возвращается значение -1 и errno содержит номер ошибки. HOME #include void home() Описание. Функция устанавливает курсор в левый верхний угол экрана. INITMOUSE #include char initMouse(void) Описание. Функция выполняет инициализацию драйвера мыши. Функция возвращает 0 при успешном завершении. При ошибке, возвращается значение -1. INP #include char inp(uint port) Описание. Функция читает один байт из порта port. Аргумент port может быть любым беззнаковым целым числом в диапазоне от 0 до 65535. Функция возвращает прочитанный байт из port. INTDOS #include void intdos(union REGS *ri, union REGS *ro) Описание. Функция intdos осуществляет выполнение системного ДОС-вызова (с возв- ратом флагов условий), который определен значениями регистров, объявленных в union REGS *ri и возвращает результат системного вызова в union REGS *ro. Тип объединения union REGS объявлен в . Для осуществления системного вызова intdos выполняет команду RST 10h. Перед выполнением команды функция копирует содержимое union REGS *ri в соответству- ющие регистры. После выполнения команды RST, функция intdos копирует значения текущих регистров в union REGS *ro. Она также копирует возвращаемый флаг усло- вий системы в поле flag, размещенное в union REGS *ro. Если это поле является ненулевым, флаг указывает на условие ошибки. union REGS *ri - значения регистров при вызове union REGS *ro - значения регистров при возврате ISALNUM #include BOOL isalnum(char ch) Описание. Функция проверяет символ ch на принадлежность к алфавитно-цифровому типу (A..Z, a..z, 0..9). ISALPHA #include BOOL isalpha(char ch) Описание. Функция проверяет символ ch на принадлежность к буквам (A..Z, a..z). ISASCII #include BOOL isascii(char ch) Описание. Функция проверяет символ ch на ASCII принадлежность. ISATTY #include BOOL isatty(FD fd) Описание. Функция низко-уровневого ввода/вывода. Функция определяет, принад- лежит ли данный дескриптор стандартным потокам (терминал, консоль,...). Функция возвращает: true - дескриптор принадлежит терминалу, консоли. false - дескриптор принадлежит файлу. ISCNTL #include BOOL iscntl(char ch) Описание. Функция проверяет символ ch на принадлежность к управляющим символам (0х00..0х1F или 0x7F). ISDIGIT #include BOOL isdigit(char ch) Описание. Функция проверяет символ ch на принадлежность к цифре. ISGRAPH #include BOOL isgraph(char ch) Описание. Функция проверяет символ ch на принадлежность к печатаемым символам, исключая символ пробела (0х21..0х7E). ISLOWER #include BOOL islower(char ch) Описание. Функция проверяет символ ch на принадлежность к строчному символу. ISPRINT #include BOOL isprint(char ch) Описание. Функция проверяет символ ch на принадлежность к печатаемым символам (0х20..0х7E). ISPUNCT #include BOOL ispunct(char ch) Описание. Функция проверяет символ ch на принадлежность к знакам пунктуации. ISSPACE #include BOOL isspace(char ch) Описание. Функция проверяет символ ch на принадлежность к пробельным символам (0x09, 0x0D или 0x20). ISUPPER #include BOOL isupper(char ch) Описание. Функция проверяет символ ch на принадлежность к прописному символу. ISXDIGIT #include BOOL isxdigit(char ch) Описание. Функция проверяет символ ch на принадлежность к шестнадцатеричным цифрам (0..9, A..F, a..f). KBHIT #include BOOL kbhit() Описание. Функция проверяет нажатие клавиши на клавиатуре. Возвращает: true - клавиша нажата false - клавиша не нажата LONGJMP #include 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 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 может быть одной из следующих констант, определенных в SEEK_SET от начала файла SEEK_CUR от текущей позиции указателя в файле SEEK_END от конца файла Функция возвращает структуру f_point, определенную в . При ошибке возвращается -1 и errno содержит номер ошибки. Установка указателя за пределами файла, ошибки не вызывает. Для устройств, не приспособленных к поиску (таких как терминалы и принтеры), возвращается значение -1. LTELL #include struct fpoint *ltell(FD fd) Описание. Функция низко-уровневого ввода/вывода. Функция получает текущую позицию указателя в файле. Позиция выражается как число байтов от начала файла. Функция возвращает структуру f_point, определенную в . При ошибке возвращается -1 и errno содержит номер ошибки. Для устройств, не приспособленных к поиску (таких как терминалы и принтеры), возвращается значение -1. MALLOC #include или char *malloc(int size) Описание. Функция захватывает блок памяти размером в size байтов. Функция возвращает указатель на выделенный блок памяти. Если свободной памяти недостаточно, возвращается NULL. MAX #include int max(int arg1, int arg2) Описание. Функция сравнивает два аргумента и вoзвращает значение наибольшего аргумента. Тип аргументoв и тип вoзвращаемoгo значения oдинакoв. MEMCHR #include void *memchr(char *buff, ch, count) Описание. Функция ищет первые count байт в buff с целью обнаружения первого появления символа ch. Поиск продолжается до тех пор, пока не будет найден указанный символ или не будут проверены все count байты. Функция возвращает указатель на расположение символа ch в buff. Если символ ch не обнаружен в первых count байтах buff, возвращается NULL. MEMCMP #include int memcmp(*buf1, *buf2, count) Описание. Функция производит последовательное лексиграф. сравнение первых count байтов из buf1 и buf2, и продолжает это, пока они совпадают, либо пока не выполнится заданное количество сравнений count. Функция возвращает значение, указывающее на соотношение этих буферов: < 0 buf1 < buf2 = 0 buf1 = buf2 > 0 buf1 > buf2 MEMCPY #include void *memcpy(*dest, *source, count) Описание. Функция копирует count байтов из source в dest. Если некоторые участки source и dest перекрываются, функция гарантирует, что байты из перекрываемого участка, принадлежащие source, будут скопированы перед перезаписью. Функция возвращает указатель на dest. MEMMOVE #include void *memmove(*dest, *source, count) Описание. Функция кoпируют count байтов из source в dest. Если некoтoрые oбласти в source и dest перекрываются, функция гарантирует, чтo исхoдные source байт из перекрывающейся oбласти будут скoпирoваны перед переписы- ванием. Функция возвращает указатель на dest. MEMSET #include void *memset(*dest, ch, count) Описание. Функция заполняет первые count байт буфера dest символом ch. Функция возвращает указатель на буфер dest. MIN #include int min(int arg1, int arg2) Описание. Функция сравнивает два аргумента и вoзвращает значение наименьшегo аргумента. Тип аргументoв и тип вoзвращаемoгo значения oдинакoв. MKDIR #include char mkdir(char *pathname) Описание. Функция создает новый каталог с заданным path-именем. За один вызов функции может быть создан только один новый каталог, с именем последней ком- поненты pathname. Функция возвращает 0, если новый каталог успешно создан. При ошибке, возвра- щается -1 (0FFh) и errno содержит номер ошибки. MOVMEM #include void movmem(*source, *destin, len) Описание. Функция movmem копирует len байт из source в destin. Если исходная и результирующия строка перекрываются, копирование все-равно производится корректно. OPEN #include uint open(char *pathname, int oflag) uint open(char *pathname, char oflag) Описание. Функция низко-уровневого ввода/вывода. Функция open открывает файл, определяемый по path-имени и подготавливает его к последующему чтению или записи, что определяется посредством oflag. Аргумент oflag является целым выражением, состоящим из комбинации одной или более манифестных констант, объявленных в . Если задано больше одной константы, то они объединяются при помощи логического оператора ИЛИ "|". Значения аргумента 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 char outp(uint port, char value); Описание. Функция записывает значение value в порт port. Аргумент port может быть любым беззнаковым целым числом в диапазоне от 0 до 65535. Аргумент value может быть любым целым числом в диапазоне от 0 до 255. Функция возвращает записываемый байт. PERROR #include void perror(char *string) Описание. Функция выводит сообщение об ошибке на stderr (экран). В этом сообщении аргумент string выводится первым, затем выводится двоеточие, системное сообщение об ошибке от последнего библиотечного вызова, вернув- шего ошибку и новая строка. Если аргумент string равен NULL, то функция пропускает сообщение string, заданное пользователем и выводит только сис- темное сообщение об ошибке, и новую строку. Чтобы вывести правильный результат, функция perror должна быть вызвана сразу же после библиотечной функции, возвратившей ошибку. Иначе значение errno может быть перезаписано при последующих вызовах библиотечных функций. Функция не возвращает никакого значения. PRINTF #include int printf(char *format, arg1, arg2, ...) Описание. Функция выводит данные с преобразованием формата в стандартный поток stdout из переменных, определяемых аргументами args. Каждый аргумент должен указывать на значение с типом, который соответствует типу, заданному в строке формата. Функция возвращает число выведенных символов. При ошибке вывода, функция возвращает отрицательное значение. PUTC #include char putc(char ch, FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Записывает символ ch в файл fp. Функция возвращает записанный символ. При ошибке, возвращается значение EOF. PUTCH #include void putch(char *c) Описание. Функция выводит символ прямо на экран. PUTENV #include uint putenv(char *envstring) Описание. Функция добавляет новую переменную окружения. Аргумент envstring должен быть указателем на строку следующего формата: VARNAME=VALUE где: VARNAME - имя добавляемой переменной окружения VALUE - значение этой переменной Элементы строки должны разделяться символом "=" и строка должна оканчи- ваться нулем. Функция возвращает 0, если она успешно отработала. При ошибке, возвращается значение -1 и errno содержит номер ошибки. PUTS #include char puts(*string) Описание. Функция записывает строку string в стандартный поток вывода stdout, заменяя в выходном потоке нулевой символ окончания строки ('\0') символом новой строки ('\n'). Функция всегда возвращает последний записанный символ, которым является сим- вол новой строки '\n'. QSORT #include 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 int rand() Описание. Функция возвращает псевдослучайное целое в интервале 0..65536. Перед вызовом rand, может быть вызвана функция srand для установки начальной случайной точки. READ #include 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 char *realloc(*ptr, int size) Описание. Функция изменяет размер ранее выделенного блока памяти. Аргумент ptr указывает на начало блока. Аргумент size задает новый размер блока в байтах. Содержимое блока не изменяется. Если size равен 0, блок освобождается и возвращается NULL. Если ptr равен NULL, то отводится (по malloc) size байтов памяти и возвращается указатель на этот блок. Аргумент ptr может указывать на блок, который должен быть освобожден прежде, чем последуют вызовы malloc, calloc, realloc. Функция возвращает указатель на перезахваченный блок памяти. Блок может быть передвинут, если его размеры изменены, поэтому аргумент ptr для функции realloc не обязательно должен быть таким же, как и возвра- щаемое значение. Возвращается значение NULL, если памяти недостаточно для расширения блока к заданному размеру. При этом первоначальный блок остается неизменным. REFRESHMOUSE #include char refreshMouse() Описание. Функция выполняет принудительную перерисовку изображения курсора мыши на экране не дожидаясь очередного прерывания. При ошибке, возвращается значение -1 и errno содержит номер ошибки. REMOVE #include char remove(char *pathname) Описание. Функция удаляет файл, определенный по pathname. Глобальные символы * и ? в имени файла не допускаются. Файлы с атрибутом "только для чтения" нельзя удалить данной функцией - предварительно нужно изменить этот атрибут. Функция возвращает 0, если файл успешно удален. При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки. RENAME #include char rename(char *oldname, char *newname) Описание. Функция переименовывает файл или каталог, определенный в имени newname. Oldname должно задавать path-имя существующего файла или каталога. Newname не определяет имя уже существующего файла или каталога. Функцию rename нельзя использовать для перемещения файла из одного каталога в другой, указав другое path-имя в аргументе newname. Функция возвращает 0, если операция прошла успешно. При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки. REWIND #include void rewind(FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция перемещает указатель в файле к началу файла. Вызов функции эквива- лентен вызову следующей функции: fseek(FILE *fp, 0, 0, SEEK_SET); с учетом того, что в FILE-структуре fp описателя файла функция rewind очи- щает флаг ошибки и индикатор конца файла, а fseek этого не делает. Функция не возвращает никакого значения. RMDIR #include char rmdir(char *pathname) Описание. Функция удаляет пустой каталог, определенный в pathname. Нельзя удалить текущий каталог или корневой. Функция возвращает 0, если каталог успешно удален. При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки. SBRK #include char *sbrk(int n) Описание. Функция выделяет блок длиной n в пределях между указателем свободной памяти и указателем стека. Значение n может быть отрицательным, тогда коли- чество захваченной памяти уменьшается на n байтов. При успешном выделении возвращает указатель на выделенный блок. Если памяти недостаточно, возвращает -1 (0FFFFh). SCANF #include int scanf(char *format, arg1, arg2, ...) Описание. Функция читает данные с преобразованием формата из стандартного потока stdin в переменные, определяемые указателями аргументов args. Каждый аргумент должен указывать на значение с типом, который соответ- ствует типу, заданному в строке формата. Функция использует буфер в об- ласти стека, размером 128 байт. Функция возвращает число полей, разделенных спец-символами. SEEK #include uint seek(FD fd, uint offset, int type) uint seek(FD fd, uint offset, char type) Описание. Функция низко-уровневого ввода/вывода. Функция устанавливает указатель в файле на новое место расположения, которое определяется как смещение offset. Тип перемещения определяется аргументом type. Следующая операция в файле выполняется на новом месте расположения указателя. Диапазон перемещения указателя не может быть больше 65534. Если нужно переместить указатель на большее значение, необходимо использовать функцию lseek. Аргумент type может быть одной из следующих констант, опре- деленных в SEEK_SET от начала файла SEEK_CUR от текущей позиции указателя в файле SEEK_END от конца файла Функция возвращает значение нового положения указателя. При ошибке возвра- щается -1 и errno содержит номер ошибки. Установка указателя за пределами файла, ошибки не вызывает. Для устройств, не приспособленных к поиску (таких как терминалы и принтеры), возвращаемое значение -1. SETDATE #include void setdate(struct date *date) Описание. Функция устанавливает новую системную дату, используя данные структуры date. Структура date описана в . SETDISK #include void setdisk(char diskno) Описание. Функция устанавливает новый текущий диск, номер которого задан в diskno. Номер диска соответствует: 0=A, 1=B,... и т.д. SETJMP #include int setjmp(env) jmp_buf env - переменная, в которой хранится сохраняемое окружение. Описание. Функция setjmp сохраняет состояние стека, который может быть после- довательно восстановлен использованием функции longjmp. Функции setjmp и longjmp обеспечивают возможность выполнения нелокального (nonlocal) перехода и обычно используются для передачи управления к обработке ошибок для восстановления кода в ранее вызванной процедуре (без использования обычного вызова), для возврата условных обозначений. Вызов setjmp активизирует сохранение текущего состояния стека в env. Последующий вызов longjmp восста- навливает сохраненное состояние и возвращает управление на указатель (точку входа), непосредственно следующий за соответствующим вызовом setjmp. После сохранения состояния стека функция setjmp возвращает значение 0. Возвращаемого значения в случае ошибки нет. SETCURSMOUSE #include char setCursMouse(MSCURS *p) Описание. Функция загружает новое изображение курсора мыши в драйвер и задает активную точку изображения. Перед вызовом функции, должна быть заполнена структура MSCURS, определенная в . При ошибке, возвращается значение -1 и errno содержит номер ошибки. SETSENSMOUSE #include char setSensMouse(MSSENS *p) Описание. Функция устанавливает значения чувствительности перемещения мыши по вертикали и горизонтали. Перед вызовом функции, должна быть заполнена структура MSSENS, определенная в . При ошибке, возвращается значение -1 и errno содержит номер ошибки. SETGPOSMOUSE #include char setGPosMouse(int x, int y) Описание. Функция перемещает курсор мыши в заданные графические координаты. При ошибке, возвращается значение -1 и errno содержит номер ошибки. SETPOSMOUSE #include char setPosMouse(int col, int line) Описание. Функция перемещает курсор мыши в заданные текстовые координаты. При ошибке, возвращается значение -1 и errno содержит номер ошибки. SETTXTMOUSE #include char setTxtMouse(MSTXT *p) Описание. Функция устанавливает символ и атрибут курсора мыши для текстового режима. При ошибке, возвращается значение -1 и errno содержит номер ошибки. SETMEM #include void setmem(*addr, len, char value) Описание. Функция устанавливает первые len байт блока addr в значение value. SETTIME #include void settime(struct time *time) Описание. Функция устанавливает новое системное время, используя данные структуры time. Структура time описана в . SHOWMOUSE #include char showMouse(void) Описание. Функция выводит на экран курсор мыши, отслеживает все перемещения курсора и перерисовывает его. При ошибке, возвращается значение -1 и errno содержит номер ошибки. SLEEP #include void sleep(uint seconds) Описание. Функция приостанавливает выполнение программы на seconds секунд. Значение seconds может находиться в диапазоне 0..65534. После выполнения функции, прерывания остаются включенными. SPRINTF #include int sprintf(char buffer, char *format, arg1, arg2, ...) Описание. Функция преобразует формат и выводит наборы символов и значений в buffer. В конец выводимой строки записывается нуль. Каждый аргумент должен указывать на значение с типом, который соответствует типу, задан- ному в строке формата. Функция возвращает количество символов, записанных в buffer. SRAND #include void srand(seed) Описание. Функция srand устанавливает начальную точку для генерации множества псевдослучайных целых. В качестве аргумента seed для переустановки генератора используется 1. Любое другое значение seed устанавливает генератор в началь- ную случайную точку. Возвращаемого значения нет. SSCANF #include int sscanf(char *buffer, char *format, arg1, arg2, ...) Описание. Функция читает данные с преобразованием формата из buffer, в пере- менные, определяемые указателями аргументов args. Каждый аргумент должен указывать на значение с типом, который соответствует типу, заданному в строке формата. Функция возвращает число полей, разделенных спец-символами. STRCAT #include char *strcat(*s1, *s2) Описание. Функция добавляет s2 к s1, завершая строку s1 нулевым символом. Функция возвращает указатель на s1. STRCHR #include char *strchr(*string, ch) Описание. Функция находит первое вхождение ch в string. Символ ch может быть нулевым символом. Нулевой символ окончания string также включается в поиск. Функция возвращает указатель на первое вхождение ch в string. Возвращается NULL, если символ не найден. STRCMP #include int strcmp(*s1, *s2) Описание. Функция производит последовательное регистро-зависимое сравнение символов строк s1 и s2, и продолжает это, пока они совпадают, либо пока одна из строк не закончится. Функция возвращает значение, указывающее на соотношение этих строк: < 0 s1 < s2 = 0 s1 = s2 > 0 s1 > s2 STRCPY #include char *strcpy(*s1, *s2) Описание. Функция копирует s2 в s1 (включая 0-й символ окончания строки). Функция возвращает указатель на s1. STRCSPN #include size_t strcspn(*s1, *s2) Описание. Функция находит первую часть строки в s1, не входящую в строку s2. Возвращает длину части строки s1, состоящей из символов, не найденных в строке s2. Если ни один из символов строки s1 не найден в s2, возвращается общая длина строки s1 без завершающего нуля. STRERR #include 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 size_t strlen(*string) Описание. Функция возвращает в байтах длину строки string, причем нулевой символ окончания строки, в размер строки не входит. STRLWR #include char *strlwr(*string) Описание. Функция преобразовывает любые буквы верхнего регистра строки string, заканчивающейся нулем, в буквы нижнего регистра. Другие символы не рассмат- риваются. Функция возвращает указатель на строку string. STRNCAT #include char *strncat(*s1, *s2, count) Описание. Функция добавляет count символов строки s2 в конец строки s1, завершая строку s1 нулевым символом. В s1 должно быть достаточно места для размещения результирующей строки. Функция возвращает указатель на s1. STRNCMP #include int strncmp(*s1, *s2, uint count) Описание. Функция производит последовательное регистро-зависимое сравнение символов строк s1 и s2. Количество сравниваемых символов задается в count. Если одна из строк заканчивается, сравнение прекращается. Функция возвращает значение, указывающее на соотношение этих строк: < 0 s1 < s2 = 0 s1 = s2 > 0 s1 > s2 STRNCPY #include char *strncpy(*s1, *s2, count) Описание. Функция копирует точно count символов строки s2 в строку s1. Если count меньше длины s2, нулевой символ окончания строки не добавляется к строке s1. Если count больше длины s2, то s1 заполняется нулевыми символами, вплоть до достижения длины count. Функция возвращает указатель на s1. STRPBRK #include char *strpbrk(*s1, *s2) Описание. Функция находит первое вхождение в строке s1 любого символа из строки s2. Нулевой символ окончания при поиске не рассматривается. Функция возвращает указатель на первое вхождение символа из s2 в строке s1. При отсутствии общих символов в s1 и s2, возвращается NULL. STRRCHR #include char *strrchr(*string, ch) Описание. Функция находит последнее вхождение символа ch в строке string. Нулевой символ окончания строки string также включается в поиск. Функция возвращает указатель на последнее вхождение символа ch в string. Если заданный символ не найден, возвращается NULL. STRSPN #include size_t strspn(*s1, *s2) Описание. Функция возвращает длину совпадающей части строки s1, которая полностью состоит из символов, найденных в строке s2. Нулевой символ окончания строки s2 не рассматривается. Если строка s1 начинается с сим- вола, не входящего в строку s2, возвращается 0. STRSTR #include char *strstr(*s1, *s2) Описание. Функция возвращает указатель на первое вхождение строки s2 в строку s1. Функция возвращает NULL, если s2 не была найдена. Если длина строки s2 равна 0, возвращается s1. STRTOK #include char *strtok(*s1, *s2) Описание. Функция находит в строке s1 токен, отделенный одним (или более) ограничителем из множества символов-ограничителей строки s2. Найденный токен в строке s1 оканчивается нулем. Для того, чтобы прочитать следующий токен из s1, функция strtok должна вызываться с NULL-значением для аргу- мента s1. Аргумент NULL s1 вызывает strtok на поиск следующего знака в предыдущей строке символов. Множество ограничителей в строк s2, от вызова к вызову, может быть различ- ным, так что s2 может принимать любые значения. При каждом вызове, функция возвращает указатель на найденный токен строки s1, каждый раз продвигаясь вперед по строке s1. Функция возвращает указатель NULL, когда больше нет токенов в строке s1. STRTOL #include 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 char *strupr(*string) Описание. Функция преобразовывает любые буквы нижнего регистра строки string, заканчивающейся нулем, в буквы верхнего регистра. Другие символы не рассмат- риваются. Функция возвращает указатель на строку string. SYSENV #include char *sysenv(char *sysenv) Описание. Функция получает системное окружение. Аргумент sysenv должен быть указателем на буфер, предназначенный для данных системного окружения. Размер буфера должен быть достаточным, чтобы вместить все данные системного окруже- ния. Формат данных в буфере следующий: - строка каждой переменной окружения заканчивается на нуль. - в конце строки последней переменной окружения, стоит дополнительный нуль, показывающий, что дальше переменных нет. Пример (в асмовом варианте): sysenv: db "PATH=c:\fn;c:\zx",0 db "SOLID=H",0 db 0 Функция возвращает указатель на буфер sysenv. При ошибке, возвращается значение -1 и errno содержит номер ошибки. TELL #include uint tell(FD fd) Описание. Функция низко-уровневого ввода/вывода. Функция возвращает текущую позицию указателя в файле. Позиция выражается как число байтов от начала файла. Значение возвращаемого указателя не может быть больше 65534. Если нужно получить большее значение, необходимо использовать функцию ltell. При ошибке возвращается -1 и errno содержит номер ошибки. Для устройств, не приспособленных к поиску (таких как терминалы и принтеры), возвращаемое значение -1. TOLOWER #include char tolower(char ch) Описание. Функция преобразует прописной символ ch в строчный. TOUPPER #include char toupper(char ch) Описание. Функция преобразует строчный символ ch в прописной. UNGETC #include char ungetc(char ch, FILE *fp) Описание. Функция относится к функциям высоко-уровневого ввода/вывода. Функция возвращает символ ch в файл. Последующая операция чтения из файла начинается с символа ch. При удачном завершении, функция возвращает ch. При ошибке возвращается EOF, говорящее о неудачном возвращении заданного символа. UNLINK #include char unlink(char *pathname) Описание. Функция удаляет файл, определенный по pathname. Глобальные символы * и ? в имени файла не допускаются. Файлы с атрибутом "только для чтения" нельзя удалить данной функцией - предварительно нужно изменить этот атрибут. Функция возвращает 0, если файл успешно удален. При ошибке, возвращается -1 (0FFh) и errno содержит номер ошибки. VMODEMOUSE #include char vmodeMouse(char video_mode) Описание. Функция информирует драйвер мыши о смене режима экрана. Номера режимов соответствуют функции установки режима экрана. При ошибке, возвращается значение -1 и errno содержит номер ошибки. WRITE #include size_t write(FD fd, void *buff, count) Описание. Функция низко-уровневого ввода/вывода. Функция записывает число байт count из буфера buff в файл. Операции записи начинаются с текущей позиции указателя в файле. Если файл открыт для добавления, операции выполняются в конец файла. После осуществления операций записи, указатель в файле увеличи- вается на количество реально записанных байтов. Макс. число записываемых бай- тов в файл равно 65534; поскольку число 65535 является неотличимым от -1, то возвращается ошибка. Функция возвращает число реально записанных байт. При ошибке записи возвраща- ется значение -1 и в errno устанавливается номер ошибки. XLIMMOUSE #include char xLimMouse(uint minx, uint maxx) Описание. Задание горизонтальных границ перемещения курсора. Функция задает левую минимальную и правую максимальную графические координаты, в которых может перемещаться курсор мыши по горизонтали. При ошибке, возвращается значение -1 и errno содержит номер ошибки. YLIMMOUSE #include char yLimMouse(int miny, int maxy) Описание. Задание вертикальных границ перемещения курсора. Функция задает верхнюю минимальную и нижнюю максимальную графические координаты, в которых может перемещаться курсор мыши по вертикали. При ошибке, возвращается значение -1 и errno содержит номер ошибки.