Kintsugi OS 0.2.0
x86 Monolithic OS
Loading...
Searching...
No Matches
stdlib.h File Reference
#include "ctypes.h"
#include "stdio.h"

Go to the source code of this file.

Functions

void booltochar (u8 value, u8 *str)
 Конвертирует булеву переменную в строку "true" или "false".
 
void itoa (int num, char *str, int base)
 Преобразует целое число со знаком в строку в указанной системе счисления.
 
void utoa (u32 num, char *str, int base)
 Преобразует целое число без знака в строку в указанной системе счисления.
 
void int_to_ascii (int n, char str[])
 (legacy, используйте itoa) Преобразует целое число в строку ASCII.
 
void hex_to_ascii (int n, char str[])
 (legacy, используйте itoa) Преобразует целое число в шестнадцатеричную строку ASCII.
 
int strtoint (char *str)
 Преобразует строку, представляющую число, в целое число со знаком.
 
int hex_strtoint (char *str)
 Преобразует строку, представляющую шестнадцатеричное число, в целое число.
 
int strlen (char s[])
 Вычисляет длину строки.
 
void strcpy (char *dest, char *src)
 Копирует строку из src в dest.
 
char * strncpy (char *dest, const char *src, unsigned int n)
 Копирует до n символов из строки src в dest.
 
int strcmp (char s1[], char s2[])
 Сравнивает две строки.
 
int strncmp (const char *s1, const char *s2, unsigned int n)
 Сравнивает первые n символов двух строк.
 
void append (char s[], char n)
 Объединяет строку src к концу строки dest.
 
char * strncat (char *dest, const char *src, unsigned int n)
 Объединяет не более n символов строки src к концу строки dest.
 
void backspace (char s[])
 Удаляет последний символ из строки (симуляция backspace).
 
void reverse (char s[])
 Разворачивает строку на месте.
 
char * strchr (const char *s, int c)
 Ищет первое вхождение символа в строке.
 
char * strstr (const char *haystack, const char *needle)
 Ищет первое вхождение подстроки needle в строке haystack.
 
u32 strspn (const u8 *str1, const u8 *str2)
 Вычисляет длину начального сегмента строки str1, состоящего только из символов строки str2.
 
u32 strcspn (const u8 *str1, const u8 *str2)
 Вычисляет длину начального сегмента строки str1, который не содержит ни одного символа из строки str2.
 
u8strpbrk (const u8 *str1, const u8 *str2)
 Ищет в строке str1 первый символ, который совпадает с любым символом из строки str2.
 
char * strtok (char *src_str, char *delim)
 Разбивает строку на токены по разделителю.
 
unsigned int is_delim (char c, char *delim)
 Проверяет, является ли символ разделителем.
 
void * memcpy (void *dest, const void *src, unsigned int n)
 Копирует блок памяти из src в dest.
 
void memory_copy (u8 *source, u8 *dest, int nbytes)
 Копирует n байт из source в dest. (Альтернатива memcpy)
 
void * memset (void *s, int c, unsigned int n)
 Заполняет блок памяти указанным значением.
 
void memory_set (u8 *dest, u8 val, u32 len)
 Заполняет блок памяти указанным байт-значением.
 
void u32memory_set (u32 *dest, u32 val, u32 len)
 Заполняет блок памяти указанным 32-битным значением.
 
void * memmove (void *dest, const void *src, u32 n)
 Перемещает блок памяти из src в dest. Области могут перекрываться.
 
int memcmp (const void *ptr1, const void *ptr2, u32 n)
 Сравнивает два блока памяти.
 
void * memchr (const void *ptr, int c, u32 n)
 Ищет первое вхождение символа в блоке памяти.
 
u32 rand (u32 *state)
 Генерирует псевдослучайное число используя линейный конгруэнтный метод.
 
u32 rand_range (u32 *state, u32 min, u32 max)
 Генерирует псевдослучайное число в заданном диапазоне.
 
int sprintf (char *buf, const char *fmt,...)
 Записывает форматированную строку в буфер.
 
int snprintf (char *buf, unsigned int size, const char *fmt,...)
 Записывает форматированную строку в буфер с ограничением размера.
 
int vsnprintf (char *buf, unsigned int size, const char *fmt, va_list args)
 Записывает форматированную строку в буфер с ограничением размера для va_list.
 
void reboot ()
 Перезагружает систему.
 
void wait (int ms)
 Приостанавливает выполнение на указанное количество миллисекунд.
 

Function Documentation

◆ append()

void append ( char  s[],
char  n 
)

Объединяет строку src к концу строки dest.

Parameters
destУказатель на целевую строку. Должна иметь достаточно места.
srcУказатель на строку-источник.

◆ backspace()

void backspace ( char  s[])

Удаляет последний символ из строки (симуляция backspace).

Parameters
sУказатель на строку для модификации.

◆ booltochar()

void booltochar ( u8  value,
u8 str 
)

Конвертирует булеву переменную в строку "true" или "false".

Parameters
valueБулева переменная для конвертации.
strУказатель на буфер, куда будет записана результирующая строка. Буфер должен быть достаточно большим (минимум 6 символов для "false").

◆ hex_strtoint()

int hex_strtoint ( char *  str)

Преобразует строку, представляющую шестнадцатеричное число, в целое число.

Parameters
strУказатель на строку для преобразования (в формате "0xFF", "FF", etc.).
Returns
Результат преобразования.

◆ hex_to_ascii()

void hex_to_ascii ( int  n,
char  str[] 
)

(legacy, используйте itoa) Преобразует целое число в шестнадцатеричную строку ASCII.

Parameters
nЧисло для преобразования.
strБуфер для записи результата.

◆ int_to_ascii()

void int_to_ascii ( int  n,
char  str[] 
)

(legacy, используйте itoa) Преобразует целое число в строку ASCII.

Parameters
nЧисло для преобразования.
strБуфер для записи результата.

K&R Реализация

◆ is_delim()

unsigned int is_delim ( char  c,
char *  delim 
)

Проверяет, является ли символ разделителем.

Parameters
cПроверяемый символ.
delimСтрока с разделителями.
Returns
Ненулевое значение, если символ является разделителем, иначе 0.

◆ itoa()

void itoa ( int  num,
char *  str,
int  base 
)

Преобразует целое число со знаком в строку в указанной системе счисления.

Parameters
numЧисло для преобразования.
strУказатель на буфер для записи результата.
baseОснование системы счисления (от 2 до 36).

◆ memchr()

void * memchr ( const void *  ptr,
int  c,
u32  n 
)

Ищет первое вхождение символа в блоке памяти.

Parameters
ptrУказатель на блок памяти для поиска.
cИскомый символ (передается как int, но преобразуется в unsigned char).
nРазмер блока памяти в байтах.
Returns
Указатель на найденный символ или NULL, если символ не найден.

◆ memcmp()

int memcmp ( const void *  ptr1,
const void *  ptr2,
u32  n 
)

Сравнивает два блока памяти.

Parameters
ptr1Указатель на первый блок памяти.
ptr2Указатель на второй блок памяти.
nКоличество байт для сравнения.
Returns
0 если блоки идентичны, >0 если ptr1 > ptr2, <0 если ptr1 < ptr2.

◆ memcpy()

void * memcpy ( void *  dest,
const void *  src,
unsigned int  n 
)

Копирует блок памяти из src в dest.

Parameters
destУказатель на назначение.
srcУказатель на источник.
nКоличество байт для копирования.
Returns
Указатель на назначение (dest).

◆ memmove()

void * memmove ( void *  dest,
const void *  src,
u32  n 
)

Перемещает блок памяти из src в dest. Области могут перекрываться.

Parameters
destУказатель на назначение.
srcУказатель на источник.
nКоличество байт для копирования.
Returns
Указатель на назначение (dest).

◆ memory_copy()

void memory_copy ( u8 source,
u8 dest,
int  nbytes 
)

Копирует n байт из source в dest. (Альтернатива memcpy)

Parameters
sourceУказатель на источник.
destУказатель на назначение.
nbytesКоличество байт для копирования.

◆ memory_set()

void memory_set ( u8 dest,
u8  val,
u32  len 
)

Заполняет блок памяти указанным байт-значением.

Parameters
destУказатель на начало блока памяти.
valЗначение для заполнения.
lenКоличество байт для заполнения.

◆ memset()

void * memset ( void *  s,
int  c,
unsigned int  n 
)

Заполняет блок памяти указанным значением.

Parameters
sУказатель на начало блока памяти.
cЗначение для заполнения (передается как int, но преобразуется в unsigned char).
nКоличество байт для заполнения.
Returns
Указатель на начало блока памяти (s).

◆ rand()

u32 rand ( u32 state)

Генерирует псевдослучайное число используя линейный конгруэнтный метод.

Parameters
stateУказатель на переменную состояния генератора.
Returns
Псевдослучайное число в диапазоне [0, UINT32_MAX].

◆ rand_range()

u32 rand_range ( u32 state,
u32  min,
u32  max 
)

Генерирует псевдослучайное число в заданном диапазоне.

Parameters
stateУказатель на переменную состояния генератора.
minНижняя граница диапазона (включительно).
maxВерхняя граница диапазона (включительно).
Returns
Псевдослучайное число в диапазоне [min, max].

◆ reboot()

void reboot ( )

Перезагружает систему.

◆ reverse()

void reverse ( char  s[])

Разворачивает строку на месте.

Parameters
sУказатель на строку для разворота.

◆ snprintf()

int snprintf ( char *  buf,
unsigned int  size,
const char *  fmt,
  ... 
)

Записывает форматированную строку в буфер с ограничением размера.

Parameters
bufУказатель на буфер для записи результата.
sizeМаксимальное количество символов для записи (включая завершающий ноль).
fmtУказатель на строку формата.
...Аргументы, соответствующие спецификаторам в формате.
Returns
Количество символов, которые были бы записаны, если бы size был достаточным (без учета завершающего нуля). Если возвращаемое значение >= size, произошло усечение.

◆ sprintf()

int sprintf ( char *  buf,
const char *  fmt,
  ... 
)

Записывает форматированную строку в буфер.

Parameters
bufУказатель на буфер для записи результата.
fmtУказатель на строку формата.
...Аргументы, соответствующие спецификаторам в формате.
Returns
Количество символов, записанных в буфер (без учета завершающего нуля).

◆ strchr()

char * strchr ( const char *  s,
int  c 
)

Ищет первое вхождение символа в строке.

Parameters
sУказатель на строку для поиска.
cИскомый символ (передается как int, но преобразуется в char).
Returns
Указатель на найденный символ в строке или NULL, если символ не найден.

◆ strcmp()

int strcmp ( char  s1[],
char  s2[] 
)

Сравнивает две строки.

Parameters
s1Указатель на первую строку.
s2Указатель на вторую строку.
Returns
0 если строки равны, >0 если s1 > s2, <0 если s1 < s2.

◆ strcpy()

void strcpy ( char *  dest,
char *  src 
)

Копирует строку из src в dest.

Parameters
destУказатель на буфер назначения.
srcУказатель на строку-источник.

◆ strcspn()

u32 strcspn ( const u8 str1,
const u8 str2 
)

Вычисляет длину начального сегмента строки str1, который не содержит ни одного символа из строки str2.

Parameters
str1Указатель на анализируемую строку.
str2Указатель на строку, содержащую набор запрещенных символов.
Returns
Длина начального сегмента.

◆ strlen()

int strlen ( char  s[])

Вычисляет длину строки.

Parameters
sУказатель на строку.
Returns
Длина строки (количество символов до завершающего нуля '\0').

◆ strncat()

char * strncat ( char *  dest,
const char *  src,
unsigned int  n 
)

Объединяет не более n символов строки src к концу строки dest.

Parameters
destУказатель на целевую строку. Должна иметь достаточно места.
srcУказатель на строку-источник.
nМаксимальное количество символов для добавления.
Returns
Указатель на целевую строку (dest).

◆ strncmp()

int strncmp ( const char *  s1,
const char *  s2,
unsigned int  n 
)

Сравнивает первые n символов двух строк.

Parameters
s1Указатель на первую строку.
s2Указатель на вторую строку.
nМаксимальное количество символов для сравнения.
Returns
0 если части строк равны, >0 если s1 > s2, <0 если s1 < s2.

◆ strncpy()

char * strncpy ( char *  dest,
const char *  src,
unsigned int  n 
)

Копирует до n символов из строки src в dest.

Parameters
destУказатель на буфер назначения.
srcУказатель на строку-источник.
nМаксимальное количество символов для копирования.
Returns
Указатель на буфер назначения (dest).

◆ strpbrk()

u8 * strpbrk ( const u8 str1,
const u8 str2 
)

Ищет в строке str1 первый символ, который совпадает с любым символом из строки str2.

Parameters
str1Указатель на строку для поиска.
str2Указатель на строку с искомыми символами.
Returns
Указатель на найденный символ или NULL, если символ не найден.

◆ strspn()

u32 strspn ( const u8 str1,
const u8 str2 
)

Вычисляет длину начального сегмента строки str1, состоящего только из символов строки str2.

Parameters
str1Указатель на анализируемую строку.
str2Указатель на строку, содержащую набор искомых символов.
Returns
Длина начального сегмента.

◆ strstr()

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

Ищет первое вхождение подстроки needle в строке haystack.

Parameters
haystackУказатель на строку, в которой выполняется поиск.
needleУказатель на искомую подстроку.
Returns
Указатель на начало найденной подстроки или NULL, если подстрока не найдена.

◆ strtoint()

int strtoint ( char *  str)

Преобразует строку, представляющую число, в целое число со знаком.

Parameters
strУказатель на строку для преобразования.
Returns
Результат преобразования.

◆ strtok()

char * strtok ( char *  src_str,
char *  delim 
)

Разбивает строку на токены по разделителю.

Parameters
src_strСтрока для разбиения. При последующих вызовах передавайте NULL.
delimСтрока, содержащая символы-разделители.
Returns
Указатель на следующий токен или NULL, если токенов больше нет.

◆ u32memory_set()

void u32memory_set ( u32 dest,
u32  val,
u32  len 
)

Заполняет блок памяти указанным 32-битным значением.

Parameters
destУказатель на начало блока памяти (должен быть выровнен по границе 4 байта).
valЗначение для заполнения.
lenКоличество 32-битных слов для заполнения.

◆ utoa()

void utoa ( u32  num,
char *  str,
int  base 
)

Преобразует целое число без знака в строку в указанной системе счисления.

Parameters
numЧисло для преобразования.
strУказатель на буфер для записи результата.
baseОснование системы счисления (от 2 до 36).

◆ vsnprintf()

int vsnprintf ( char *  buf,
unsigned int  size,
const char *  fmt,
va_list  args 
)

Записывает форматированную строку в буфер с ограничением размера для va_list.

Parameters
bufУказатель на буфер для записи результата.
sizeМаксимальное количество символов для записи (включая завершающий ноль).
fmtУказатель на строку формата.
argsАргументы типа va_list.
...Аргументы, соответствующие спецификаторам в формате.
Returns
Количество символов, которые были бы записаны, если бы size был достаточным (без учета завершающего нуля). Если возвращаемое значение >= size, произошло усечение.

◆ wait()

void wait ( int  ms)

Приостанавливает выполнение на указанное количество миллисекунд.

Parameters
msВремя задержки в миллисекундах.