Module libc/stdlib
C11 <stdlib.h> — general utility functions.
Stability
unstable — a raw C binding, not a Yo design. Callers in std/ take
narrow slices of it: getenv / setenv / unsetenv / realpath for
std/env, exit for std/process, atof for std/encoding/json's
number parser. Those modules are the supported surface. malloc /
free / realloc are bound but are NOT how Yo allocates — that is
std/allocator and the runtime's own allocator — and calling them on a
Yo-owned pointer is a heap bug. Freezing follows the modules above it;
the binding set itself is additive-by-demand.
Types
Functions
Parameters
| Name | Type | Notes |
|---|---|---|
status | int |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
status | int |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
status | int |
Returns: unit
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
func | fn() -> unit |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
func | fn() -> unit |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
size | usize |
Returns: ?(*(void))
Parameters
| Name | Type | Notes |
|---|---|---|
nmemb | usize | |
size | usize |
Returns: ?(*(void))
Parameters
| Name | Type | Notes |
|---|---|---|
ptr | ?(*(void)) | |
size | usize |
Returns: ?(*(void))
Parameters
| Name | Type | Notes |
|---|---|---|
ptr | ?(*(void)) |
Returns: unit
C11 aligned_alloc, released with free. Raw and non-portable: it is
absent from the Windows CRT (which offers _aligned_malloc /
_aligned_free instead), so a call to it does not compile for the
*-pc-windows-* targets, and C11 leaves the result undefined unless
alignment is a supported power of two and size is a multiple of it
(macOS enforces both by returning NULL; glibc enforces neither).
GlobalAllocator.aligned_alloc / aligned_free in std/allocator is the
portable pair.
Parameters
| Name | Type | Notes |
|---|---|---|
alignment | usize | |
size | usize |
Returns: ?(*(void))
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) |
Returns: f64
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) |
Returns: long
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) |
Returns: longlong
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) | |
base | int |
Returns: long
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) | |
base | int |
Returns: longlong
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) | |
base | int |
Returns: ulong
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) | |
base | int |
Returns: ulonglong
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) |
Returns: f32
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) |
Returns: f64
Parameters
| Name | Type | Notes |
|---|---|---|
nptr | *(char) | |
endptr | ?(*(?(*(char)))) |
Returns: longdouble
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
seed | uint |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
seedp | *(uint) |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
key | *(void) | |
base | *(void) | |
nmemb | usize | |
size | usize | |
compar | fn(a : *(void), b : *(void)) -> int |
Returns: ?(*(void))
Parameters
| Name | Type | Notes |
|---|---|---|
base | *(void) | |
nmemb | usize | |
size | usize | |
compar | fn(a : *(void), b : *(void)) -> int |
Returns: unit
Parameters
| Name | Type | Notes |
|---|---|---|
j | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
j | long |
Returns: long
Parameters
| Name | Type | Notes |
|---|---|---|
j | longlong |
Returns: longlong
Parameters
| Name | Type | Notes |
|---|---|---|
numer | int | |
denom | int |
Returns: div_t
Parameters
| Name | Type | Notes |
|---|---|---|
numer | long | |
denom | long |
Returns: ldiv_t
Parameters
| Name | Type | Notes |
|---|---|---|
numer | longlong | |
denom | longlong |
Returns: lldiv_t
Parameters
| Name | Type | Notes |
|---|---|---|
name | *(char) |
Returns: ?(*(char))
Parameters
| Name | Type | Notes |
|---|---|---|
name | *(char) | |
value | *(char) | |
overwrite | int |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
name | *(char) |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
path | *(char) | |
resolved_path | ?(*(char)) |
Returns: ?(*(char))
Parameters
| Name | Type | Notes |
|---|---|---|
command | ?(*(char)) |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
len | ?(*(usize)) | |
value | *(char) | |
maxsize | usize | |
name | *(char) |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
s | ?(*(char)) | |
n | usize |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
pwc | ?(*(wchar_t)) | |
s | ?(*(char)) | |
n | usize |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
s | ?(*(char)) | |
wc | wchar_t |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
dest | ?(*(wchar_t)) | |
src | *(char) | |
n | usize |
Returns: usize
Parameters
| Name | Type | Notes |
|---|---|---|
dest | ?(*(char)) | |
src | *(wchar_t) | |
n | usize |
Returns: usize
Parameters
| Name | Type | Notes |
|---|---|---|
retval | ?(*(usize)) | |
dest | ?(*(wchar_t)) | |
destsz | usize | |
src | *(char) | |
len | usize |
Returns: int
Parameters
| Name | Type | Notes |
|---|---|---|
retval | ?(*(usize)) | |
dest | ?(*(char)) | |
destsz | usize | |
src | *(wchar_t) | |
len | usize |
Returns: int
Constants
Value: <unknown: int>
Value: <unknown: int>
Value: <unknown: int>
Value: <unknown: int>