Основные библиотеки в Си

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

Названия библиотек и их свойства

stdio.h Библиотека ввода-вывода.
stdlib.h Вспомогательные функции, которые могут быть использованы в разнообразных программах
math.h Математическая библиотека.
string.h Работа с строками(массивами символов).
time.h Функции по работе с датами и временем, в том числе текущим.

Составы библиотек

Состав 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

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

имя функции описание
abort ненормальное завершение программы
abs модуль целого числа
assert макроопределение для вывода отладочных диагностических сообщений
atexit запрос вызова функции при завершении работы программы
atof, atoff преобразование строки в значение типа double или float
atii, atol строка в целое
atol преобразовывает строку в long
bsearsh двоичный поиск
calloc выделяет пространство для массивов
div деление двух целых
ecvt, ecvtf, fcvt, fcvtf преобразование double или float в строку
gvcvt, gcvtf форматируют double и float как строку
ecvtbuf, fcvtbuf double или float в строку
exit завершение выполнения программы
getenv поиск переменной окружения
labs модуль длинного целого
ldiv деление двyх длинных целых
malloc, realloc, free управление памятью
mbtowc минимальный преобразователь мультибайтов в широкие символы
qsort сортировка массива
rand, srand псевдо-случайные числа
strtod, strtodf строка в double или float
strtol строка в long
strtoul строка в unsigned long
system выполняет командную строку
wctomb минимальный преобразователь широких символов в мультибайты

Состав библиотеки 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 гиперболический тангенс

Состав библиотеки 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) будет эквивалентно сравнению с коллатором.


Code.C © Copyright Павел Калашников 2021
обратная связь code.c04@mail.ru