Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основная книга по С++й.doc
Скачиваний:
16
Добавлен:
28.10.2018
Размер:
2.07 Mб
Скачать

Приложение 1. Стандартные библиотеки языка Си

В языке Си стандартные функции собраны в различных библиотеках. Для использования этих функций необходимо подключить к проекту соотаетствующие библиотеки с помощью конструкции #include. Ниже представлены некоторые библиотеки языка Си, а также их состав.

Таблица 19.

Библиотеки языка Си

Имя

Назначение библиотеки

complex.h

Набор функций для работы с комплексными числами

ctype.h

Содержит функции, используемые для классификации символов по их типам или для конвертации между верхним и нижним регистрами независимо от используемой кодировки

errno.h

Для проверки кодов ошибок, возвращаемых библиотечными функциями

iostream

Содержит функции контроля чтения и записи стандартных потоков

limits.h

Содержит заранее заданные константы, определяющие специфику реализации свойств целых типов

signal.h

Функции для управления различными исключительными условиями

math.h

Функции для вычисления основных математических функций

stdio.h

Реализует основные возможности ввода и вывода в языке Си

stdlib.h

Вспомогательные функции, которые могут быть использованы в разнообразных программах

string.h

Для работы с различными видами строк

time.h

Для конвертации между различными форматами времени и даты

Таблица 20.

Состав библиотеки complex.h

Имя функции

Описание

cabs, cabsf, cabsl

Абсолютное значение комплексного числа

cacos, cacosf, cacosl

Комплексный арккосинус

cacosh, cacoshf, cacoshl

Комплексный гиперболический арккосинус

carg, cargf, cargl

Аргумент комплексного числа

casin, casinf, casinl

Комплексный арксинус

casinh, casinhf, casinhl

Комплексный гиперболический арксинус

catan, catanf, catanl

Комплексный арктангенс

catanh, catanhf, catanhl

Комплексный гиперболический арктангенс

ccos, ccosf, ccosl

Комплексный косинус

ccosh, ccoshf, ccoshl

Комплексный гиперболический косинус

cexp, cexpf, cexpl

Комплексная экспонента

cimag, cimagf, cimagl

Мнимая часть комплексного числа

clog, clogf, clogl

Натуральный логарифм комплексного числа

conj, conjf, conjl

Комплексное сопряжённое число

cpow, cpowf, cpowl

Степень комплексного числа

cproj, cprojf, cprojl

Проекция на римановскую сферу

creal, crealf, creall

Действительная часть комплексного числа

csin, csinf, csinl

Комплексный синус

csinh, csinhf, csinhl

Комплексный гиперболический синус

csqrt, csqrtf, csqrtl

Комплексный квадратный корень

ctan, ctanf, ctanl

Комплексный тангенс

ctanh, ctanhf, ctanhl

Комплексный гиперболический тангенс

Таблица 21.

Состав библиотеки ctype.h

Имя функции

Проверяет, является ли аргумент…

isalnum

…буквой или цифрой

isalpha

…буквой

iscntrl

…управляющим символом

isdigit

…цифрой

isgraph

…символом, имеющим графическое представление

islower

…буквой в нижнем регистре

isprint

…символом, который может быть напечатан

ispunct

…символом, имеющим графическое представление, но не являющимся при этом буквой или цифрой

isspace

…разделительным символом

isupper

…буквой в верхнем регистре

isxdigit

…цифрой шестнадцатиричной системы счисления

Таблица 22.

Состав библиотеки errno.h

Имя функции

Описание

E2BIG

Список аргументов слишком длинный

EACCES

Отказ в доступе

EAGAIN

Ресурс временно недоступен

EBADF

Неправильный дескриптор файла

EBADMSG

Неправильное сообщение

EBUSY

Ресурс занят

ECANCELED

Операция отменена

ECHILD

Нет дочернего процесса

EDEADLK

Обход тупика ресурсов

EDOM

Ошибка области определения

EEXIST

Файл существует

EFAULT

Неправильный адрес

EFBIG

Файл слишком велик

EINPROGRESS

Операция в процессе выполнения

EINTR

Прерванный вызов функции

EINVAL

Неправильный аргумент

EIO

Ошибка ввода-вывода

EISDIR

Это каталог

EMFILE

Слишком много открытых файлов

EMLINK

Слишком много связей

EMSGSIZE

Неопределённая длина буфера сообщения

ENAMETOOLONG

Имя файла слишком длинное

ENFILE

Слишком много открытых файлов в системе

ENODEV

Нет такого устройства

ENOENT

Нет такого файла в каталоге

ENOEXEC

Ошибка формата исполняемого файла

ENOLCK

Блокировка недоступна

ENOMEM

Недостаточно памяти

ENOSPC

Памяти на устройстве не осталось

ENOSYS

Функция не реализована

ENOTDIR

Это не каталог

ENOTEMPTY

Каталог непустой

ENOTSUP

Не поддерживается

ENOTTY

Неопределённая операция управления вводом-выводом

ENXIO

Нет такого устройства или адреса

EPERM

Операция не разрешена

EPIPE

Разрушенный канал

ERANGE

Результат слишком велик

EROFS

Файловая система только на чтение

ESPIPE

Неправильное позиционирование

ESRCH

Нет такого процесса

ETIMEDOUT

Операция задержана

EXDEV

Неопределённая связь

Таблица 23.

Состав библиотеки iostream.h

Имя функции

Описание

cin

Соответствует стандартному вводу. В общем случае он позволяет читать данные с терминала пользователя

cout

Соответствует стандартному выводу. В общем случае он позволяет выводить данные на терминал пользователя

cerr

Соответствует стандартному выводу для ошибок. В этот поток мы направляем сообщения об ошибках программы

Таблица 24.

Состав библиотеки limits.h

Имя

Описание

Типичное значение 32-битной программы

Типичное значение 64-битной программы

Стандартный минимум или максимум диапазона значений

CHAR_BIT

Число бит в байте

8

8

≥ 8

SCHAR_MIN

Минимальное значение для знакового char

−128

−128

≤ -127

SCHAR_MAX

Максимальное значение для знакового char

+127

+127

≥ +127

UCHAR_MAX

Максимальное значение для беззнакового char

+255

+255

≥ +255

CHAR_MIN

Минимальное значение для char

−128

−128

≤ -127(если char представлено как знаковый char; иначе 0)

CHAR_MAX

Максимальное значение для char

+127

+127

≥ +127 (если char представлено как знаковый char; иначе +255)

MB_LEN_MAX

Максимальная многобайтовая длина символа по всем локалям

различается, обычно от 4

различается, обычно от 4

≥ 1

SHRT_MIN

Минимальное значение для short int

−32,768

−32,768

≤ -32,767

SHRT_MAX

Максимальное значение для short int

+32,767

+32,767

≥ +32,767

USHRT_MAX

Максимальное значение для беззнакового short int

+65,535

+65,535

≥ +65,535

INT_MIN

Минимальное значение для int

−2,147,483,648

−2,147,483,648

≤ -32,767

INT_MAX

Максимальное значение для int

+2,147,483,647

+2,147,483,647

≥ +32,767

UINT_MAX

Максимальное значение для беззнакового int

+4,294,967,295

+4,294,967,295

≥ +65,535

LONG_MIN

Минимальное значение для long int

−2,147,483,648

−9,223,372,036,854,775,808

≤ -2,147,483,647

LONG_MAX

Максимальное значение для long int

+2,147,483,647

+9,223,372,036,854,775,807

≥ +2,147,483,647

ULONG_MAX

максимальное значение для беззнакового long int

+4,294,967,295

+18,446,744,073,709,551,615

≥ +4,294,967,295

LLONG_MIN

Минимальное значение для long long int

−9,223,372,036,854,775,808

−9,223,372,036,854,775,808

≤ -9,223,372,036,854,775,807

LLONG_MAX

Максимальное значение для long long int

+9,223,372,036,854,775,807

+9,223,372,036,854,775,807

≥ +9,223,372,036,854,775,807

ULLONG_MAX

максимальное значение для беззнакового long long int

+18,446,744,073,709,551,615

+18,446,744,073,709,551,615

≥ +18,446,744,073,709,551,615

Таблица 25.

Состав библиотеки limits.h

Константа

Значение

Стандарты

SIGHUP

Отбой

POSIX

SIGINT

Прерывание

ANSI

SIGQUIT

Выход

POSIX

SIGILL

Недопустимая инструкция

ANSI

SIGABRT

Самоостановка

ANSI

SIGTRAP

Перехват события

POSIX

SIGIOT

Перехват ввода-вывода

4.2 BSD

SIGEMT

Перехват эмуляции

4.2 BSD

SIGFPE

Исключение с плавающей запятой

ANSI

SIGKILL

Неперехватываемый сигнал завершения

POSIX

SIGBUS

Ошибка шины

4.2 BSD

SIGSEGV

Нарушение сегментации

ANSI

SIGSYS

Неправильный аргумент в системный вызов

4.2 BSD

SIGPIPE

Нарушение канала

POSIX

SIGALRM

Истечение времени

POSIX

SIGTERM

Заверешние

ANSI

SIGUSR1

Пользовательский сигнал 1

POSIX

SIGUSR2

Пользовательский сигнал 2

POSIX

SIGCHLD

Изменение статуса дочернего процесса

POSIX

SIGCLD

Аналогично SIGCHLD

System V

SIGPWR

Перезапуск после проблемы с питанием

System V

SIGXCPU

Ограничение процессорного времени

POSIX

Таблица 26.

Состав библиотеки math.h

Имя функции

Описание

acos

арккосинус

asin

арксинус

atan

арктангенс

atan2

арктангенс с двумя параметрами

ceil

округление до ближайшего большего целого числа

cos

косинус

cosh

гиперболический косинус

exp

вычисление экспоненты

fabs

абсолютная величина (числа с плавающей точкой)

floor

округление до ближайшего меньшего целого числа

fmod

вычисление остатка от деления нацело для чисел с плавающей точкой

frexp

разбивает число с плавающей точкой на мантиссу и показатель степени.

ldexp

умножение числа с плавающей точкой на целую степень двух

log

натуральный логарифм

log10

логарифм по основанию 10

modf(x,p)

извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой

pow(x,y)

результат возведения x в степень y, xy

sin

синус

sinh

гиперболический синус

sqrt

квадратный корень

tan

тангенс

tanh

гиперболический тангенс

Таблица 27.

Состав библиотеки stdio.h

Имя функции

Описание

Функции для файловых операций

fclose

закрывает файл, ассоциированный с переданным ей значением FILE *

fopen, freopen, fdopen

открывают файл для определенных типов чтения и записи

remove

удаляет файл (стирая его)

rename

переименовывает файл

rewind

работает аналогично fseek(stream, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок

tmpfile

создает и открывает временный файл, удаляемый при закрытии через fclose()

Функции для операций ввода-вывода

clearerr

очищает EOF и индикаторы ошибок для данного потока

feof

проверяет, установлен ли индикатор EOF для данного потока

ferror

проверяет, установлен ли индикатор ошибок для данного потока

fflush

принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком

fgetpos

сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)

fgetc

возвращает один символ из файла

fgets

получает строку из файла (оканчивающуюся символом перевода строки или конца файла)

fputc

записывает один символ в файл

fputs

записывает строку в файл

ftell

возвращает указатель позиции файла, который может быть передан fseek

fseek

производит поиск по файлу

fsetpos

устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе (fpos_t *)

fread

читает данные из файла

fwrite

записывает данные в файл

getc

считывает и возвращает символ из данного потока и изменяет укащатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc, кроме того, что может вычислять поток более одного раза

getchar

имеет аналогичный эффект, что и getc(stdin)

gets

считывает символы из stdin до символа перевода строки и хранит их в своем единственном аргументе

printf, vprintf

используются для вывода в стандартный поток вывода

fprintf, vfprintf

используются для вывода в файл

sprintf, snprintf, vsprintf

используются для вывода в массив типа char (Строка в языке Си)

perror

записывает сообщение об ошибке в stderr

putc

записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc, кроме того, что он может обрабатывать поток более одного раза

putchar, fputchar

аналогичны putc(stdout)

scanf, vscanf

используются для ввода из стандартного потока ввода

fscanf, vfscanf

используются для ввода из файла

sscanf, vsscanf

используются для ввода из массива char (то есть Строка в языке Си)

setvbuf

устанавливает режим буферизации для данного потока

tmpnam

создает временное имя файла

ungetc

помещает символ обратно в поток

puts

выводит символьную строку в stdout

Таблица 28.

Состав библиотеки stdlib.h

Имя функции

Описание

Реализация

abort

Ненормальное завершение программы

void abort(void);

abs

Модуль целого числа

int abs(int i);

assert

Макроопределение для вывода отладочных диагностических сообщений

void assert(int expression);

atexit

Запрос вызова функции при завершении работы программы

int atexit(void (*function)(void);

atof, atoff

Преобразование строки в значение типа double или float

double atof(const char *s);

float atoff(const char *s);

atii, atol

Строка в целое

int atoi(const char *s);

long atol(const char *s);

atol

Преобразовывает строку в long

long atol(const char *s);

bsearsh

Двоичный поиск

void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));

calloc

Выделяет пространство для массивов

void *calloc(size_t n, size_t s);

void *calloc_r(void *reent, size_t <n>, <size_t> s);

div

Деление двух целых

div_t div(int n, int d);

ecvt, ecvtf, fcvt, fcvtf

Преобразование double или float в строку

char *ecvt(double val, int chars, int *decpt, int *sgn);

char *ecvtf(float val, int chars, int *decpt, int *sgn);

gvcvt, gcvtf

Форматируют double и float как строку

char *gcvt(double val, int precision, char *buf);

char *gcvtf(float val, int precision, char *buf);

ecvtbuf, fcvtbuf

Double или float в строку

char *ecvtbuf(double val, int chars, int *decpt, int *sgn, char *buf);

char *fcvtbuf(double val, int decimals, int *decpt, int *sgn, char *buf);

exit

Завершение выполнения программы

void exit(int code);

getenv

Поиск переменной окружения

char *getenv(const char *name);

labs

Модуль длинного целого

long labs(long i);

ldiv

Деление двyх длинных целых

ldiv_t ldiv(long n, long d);

malloc, realloc, free

Управление памятью

void *malloc(size_t nbytes);

void *realloc(void *aptr, size_t nbytes);

void free(void *aptr);

mbtowc

Минимальный преобразователь мультибайтов в широкие символы

int mbtowc(wchar_t *pwc, const char *s, size_t n);

qsort

Сортировка массива

void qsort(void *base, size_t nmemb, size_t size,int (*compar)(const void *, const void *) );

rand, srand

Псевдо-случайные числа

int rand(void);

void srand(unsigned int seed);

int _rand_r(void *reent);

void _srand_r(void *reent, unsigned int seed);

strtod, strtodf

Строка в double или float

double strtod(const char *str, char **tail);

float strtodf(const char *str, char **tail);

double _strtod_r(void *reent, const char *str, char **tail);

strtol

Строка в long

ong strtol(const char *s, char **ptr,int base);

strtoul

Строка в unsigned long

unsigned long strtoul(const char *s, char **ptr, int base);

system

Выполняет командную строку

int system(char *s);

int _system_r(void *reent, char *s);

wctomb

Минимальный преобразователь широких символов в мультибайты

int wctomb(char *s, wchar_t wchar);

Таблица 29.

Состав библиотеки string.h

Имя функции

Описание

void *memcpy(void *dest, const void *src, size_t n);

Копирует n байт из области памяти src в dest, которые не должны пересекаться, в противном случае результат неопределен (возможно как правильное копирование, так и нет)

void *memmove(void *dest, const void *src, size_t n);

Копирует n байт из области памяти src в dest, которые в отличие от memcpy могут перекрываться

void *memchr(const void *s, char c, size_t n);

Возвращает указатель на первое вхождение c в первых n байтах s, или NULL, если не найдено

int memcmp(const void *s1, const void *s2, size_t n);

Сравнивает первые n символов в областях памяти

void *memset(void *, int z, size_t);

Заполняет область памяти одним байтом z

char *strcat(char *dest, const char *src);

Дописывает строку src в конец dest

char *strncat(char *, const char *, size_t);

Дописывает не более n начальных симолов строки src (или всю src, если ее длина меньше) в конец dest

char *strchr(const char *, int);

Ищет символ в строке, начиная с головы и возращает его адрес, или NULL если не найден

char *strrchr(const char *, int);

Ищет символ в строке, начиная с хвоста и возращает его адрес, или NULL если не найден

int strcmp(const char *, const char *);

Лексикографическое сравнение строк

int strncmp(const char *, const char *, size_t);

Лексикографическое сравнение первых n байтов строк

int strcoll(const char *, const char *);

Лексикографическое сравнение строк с учетом локали collating order

char *strcpy(char *toHere, const char *fromHere);

Копирует строку из одного места в другое

char *strncpy(char *toHere, const char *fromHere, size_t);

Копирует до n байт строки из одного места в другое

char *strerror(int);

Возвращает строковое представление сообщения об ошибке errno (не потоко-безопасная)

size_t strlen(const char *);

Возвращает длину строки

size_t strspn(const char *s, const char *accept);

Определяет максимальную длину начальной подстроки, состоящей исключительно из байтов, перечисленных в accept

size_t strcspn(const char *s, const char *reject);

Определяет максимальную длину начальной подстроки, состоящей исключительно из байтов, не перечисленных в reject

char *strpbrk(const char *s, const char *accept);

Находит первое вхождение любого символа, не перечисленного в accept

char *strstr(const char *haystack, const char *needle);

Находит первое вхождение строки needle в haystack

char *strtok(char *, const char *);

Преобразует строку в последовательность токенов. Не потоко-безопасная, нереентрантная.

size_t strxfrm(char *dest, const char *src, size_t n);

Создает оттранслированную копию строки, такую, что дословное сравнение ее (strcmp) будет эквивалентно сравнению с коллатором.

Таблица 30.

Состав библиотеки time.h

Имя функции

Описание

int tm_sec;

Секунды от начала минуты (0,61)

int tm_min;

Минуты от начала часа (0,59)

int tm_hour;

Часы от полуночи (0,23)

int tm_mday;

Число месяца (1,31)

int tm_mon;

Месяцы после января (0,11)

int tm_year;

Годы с 1900

int tm_wday;

Дни с воскресенья (0,6)

int tm_yday;

Дни с первого января (0,365)

int tm_isdst;

Признак летнего времени