Module libc/string

libc/string
Stability: unstable — a raw C binding, not a Yo design. It is the byte-move layer under the containers: `memcpy` / `memmove` / `memset` for `std/collections/array_list`, `memcpy` / `memcmp` for `std/string` and the `std/imm` persistent structures, `strlen` where a `*char` crosses the FFI boundary. Those modules are the supported surface — a caller here is doing untyped pointer work and owns the aliasing and bounds rules C states (`memcpy` on overlapping ranges is undefined; use `memmove`). The `strcpy` / `strcat` family is bound for completeness and should not be used in new code. Additive-by-demand, follows C. — stable modules only change additively; this one may still change.

C11 <string.h> — string and memory functions.

Stability

unstable — a raw C binding, not a Yo design. It is the byte-move layer under the containers: memcpy / memmove / memset for std/collections/array_list, memcpy / memcmp for std/string and the std/imm persistent structures, strlen where a *char crosses the FFI boundary. Those modules are the supported surface — a caller here is doing untyped pointer work and owns the aliasing and bounds rules C states (memcpy on overlapping ranges is undefined; use memmove). The strcpy / strcat family is bound for completeness and should not be used in new code. Additive-by-demand, follows C.

Functions

memcpy function
fn(dest : *(void), src : *(void), n : usize) -> *(void)

Parameters

NameTypeNotes
dest*(void)
src*(void)
nusize

Returns: *(void)

memmove function
fn(dest : *(void), src : *(void), n : usize) -> *(void)

Parameters

NameTypeNotes
dest*(void)
src*(void)
nusize

Returns: *(void)

memset function
fn(s : *(void), c : int, n : usize) -> *(void)

Parameters

NameTypeNotes
s*(void)
cint
nusize

Returns: *(void)

memcmp function
fn(s1 : *(void), s2 : *(void), n : usize) -> int

Parameters

NameTypeNotes
s1*(void)
s2*(void)
nusize

Returns: int

memchr function
fn(s : *(void), c : int, n : usize) -> ?(*(void))

Parameters

NameTypeNotes
s*(void)
cint
nusize

Returns: ?(*(void))

strcpy function
fn(dest : *(char), src : *(char)) -> *(char)

Parameters

NameTypeNotes
dest*(char)
src*(char)

Returns: *(char)

strncpy function
fn(dest : *(char), src : *(char), n : usize) -> *(char)

Parameters

NameTypeNotes
dest*(char)
src*(char)
nusize

Returns: *(char)

strcat function
fn(dest : *(char), src : *(char)) -> *(char)

Parameters

NameTypeNotes
dest*(char)
src*(char)

Returns: *(char)

strncat function
fn(dest : *(char), src : *(char), n : usize) -> *(char)

Parameters

NameTypeNotes
dest*(char)
src*(char)
nusize

Returns: *(char)

strcmp function
fn(s1 : *(char), s2 : *(char)) -> int

Parameters

NameTypeNotes
s1*(char)
s2*(char)

Returns: int

strncmp function
fn(s1 : *(char), s2 : *(char), n : usize) -> int

Parameters

NameTypeNotes
s1*(char)
s2*(char)
nusize

Returns: int

strcoll function
fn(s1 : *(char), s2 : *(char)) -> int

Parameters

NameTypeNotes
s1*(char)
s2*(char)

Returns: int

strxfrm function
fn(dest : *(char), src : *(char), n : usize) -> usize

Parameters

NameTypeNotes
dest*(char)
src*(char)
nusize

Returns: usize

strchr function
fn(s : *(char), c : int) -> ?(*(char))

Parameters

NameTypeNotes
s*(char)
cint

Returns: ?(*(char))

strrchr function
fn(s : *(char), c : int) -> ?(*(char))

Parameters

NameTypeNotes
s*(char)
cint

Returns: ?(*(char))

strspn function
fn(s : *(char), accept : *(char)) -> usize

Parameters

NameTypeNotes
s*(char)
accept*(char)

Returns: usize

strcspn function
fn(s : *(char), reject : *(char)) -> usize

Parameters

NameTypeNotes
s*(char)
reject*(char)

Returns: usize

strpbrk function
fn(s : *(char), accept : *(char)) -> ?(*(char))

Parameters

NameTypeNotes
s*(char)
accept*(char)

Returns: ?(*(char))

strstr function
fn(haystack : *(char), needle : *(char)) -> ?(*(char))

Parameters

NameTypeNotes
haystack*(char)
needle*(char)

Returns: ?(*(char))

strtok function
fn(s : ?(*(char)), delim : *(char)) -> ?(*(char))

Parameters

NameTypeNotes
s?(*(char))
delim*(char)

Returns: ?(*(char))

strlen function
fn(s : *(char)) -> usize

Parameters

NameTypeNotes
s*(char)

Returns: usize

strerror function
fn(errnum : int) -> *(char)

Parameters

NameTypeNotes
errnumint

Returns: *(char)

strcpy_s function
fn(dest : *(char), destsz : usize, src : *(char)) -> int

Parameters

NameTypeNotes
dest*(char)
destszusize
src*(char)

Returns: int

strncpy_s function
fn(dest : *(char), destsz : usize, src : *(char), count : usize) -> int

Parameters

NameTypeNotes
dest*(char)
destszusize
src*(char)
countusize

Returns: int

strcat_s function
fn(dest : *(char), destsz : usize, src : *(char)) -> int

Parameters

NameTypeNotes
dest*(char)
destszusize
src*(char)

Returns: int

strncat_s function
fn(dest : *(char), destsz : usize, src : *(char), count : usize) -> int

Parameters

NameTypeNotes
dest*(char)
destszusize
src*(char)
countusize

Returns: int

memcpy_s function
fn(dest : *(void), destsz : usize, src : *(void), count : usize) -> int

Parameters

NameTypeNotes
dest*(void)
destszusize
src*(void)
countusize

Returns: int

memmove_s function
fn(dest : *(void), destsz : usize, src : *(void), count : usize) -> int

Parameters

NameTypeNotes
dest*(void)
destszusize
src*(void)
countusize

Returns: int

memset_s function
fn(s : *(void), smax : usize, c : int, n : usize) -> int

Parameters

NameTypeNotes
s*(void)
smaxusize
cint
nusize

Returns: int

strnlen_s function
fn(s : *(char), maxlen : usize) -> usize

Parameters

NameTypeNotes
s*(char)
maxlenusize

Returns: usize

strerror_s function
fn(s : *(char), maxsize : usize, errnum : int) -> int

Parameters

NameTypeNotes
s*(char)
maxsizeusize
errnumint

Returns: int

strtok_s function
fn(s : ?(*(char)), delim : *(char), ptr : *(?(*(char)))) -> ?(*(char))

Parameters

NameTypeNotes
s?(*(char))
delim*(char)
ptr*(?(*(char)))

Returns: ?(*(char))

strdup function
fn(s : *(char)) -> ?(*(char))

Parameters

NameTypeNotes
s*(char)

Returns: ?(*(char))

strndup function
fn(s : *(char), n : usize) -> ?(*(char))

Parameters

NameTypeNotes
s*(char)
nusize

Returns: ?(*(char))

strcasecmp function
fn(s1 : *(char), s2 : *(char)) -> int

Parameters

NameTypeNotes
s1*(char)
s2*(char)

Returns: int

strncasecmp function
fn(s1 : *(char), s2 : *(char), n : usize) -> int

Parameters

NameTypeNotes
s1*(char)
s2*(char)
nusize

Returns: int