Module libc/stdio

libc/stdio
Stability: unstable — a raw C binding, not a Yo design. The public surfaces above it are `std/io` (streams and readers/writers) and `std/fmt` (printing); what `std/` uses directly from here is `snprintf` for number formatting (`std/net/addr`, `std/encoding/json`, `std/crypto/random`) and `fwrite` / `stdout` / `stderr` for `std/log`. `FILE`, `fpos_t` and `va_list` are opaque `Type`s because their layout is the C library's, and the varargs functions cannot be called from Yo with a variable argument list — `snprintf` works only because each call site passes a fixed one. Prefer `std/io`; this file freezes when C's stdio does, which is to say it is not the thing to freeze. — stable modules only change additively; this one may still change.

C11 <stdio.h> — standard I/O functions.

Stability

unstable — a raw C binding, not a Yo design. The public surfaces above it are std/io (streams and readers/writers) and std/fmt (printing); what std/ uses directly from here is snprintf for number formatting (std/net/addr, std/encoding/json, std/crypto/random) and fwrite / stdout / stderr for std/log. FILE, fpos_t and va_list are opaque Types because their layout is the C library's, and the varargs functions cannot be called from Yo with a variable argument list — snprintf works only because each call site passes a fixed one. Prefer std/io; this file freezes when C's stdio does, which is to say it is not the thing to freeze.

Types

FILE type-alias
FILE
fpos_t type-alias
fpos_t
va_list type-alias
va_list

Functions

fopen function
fn(filename : *(char), mode : *(char)) -> ?(*(FILE))

Parameters

NameTypeNotes
filename*(char)
mode*(char)

Returns: ?(*(FILE))

freopen function
fn(filename : *(char), mode : *(char), stream : *(FILE)) -> ?(*(FILE))

Parameters

NameTypeNotes
filename*(char)
mode*(char)
stream*(FILE)

Returns: ?(*(FILE))

fclose function
fn(stream : *(FILE)) -> int

Parameters

NameTypeNotes
stream*(FILE)

Returns: int

fflush function
fn(stream : ?(*(FILE))) -> int

Parameters

NameTypeNotes
stream?(*(FILE))

Returns: int

setbuf function
fn(stream : *(FILE), buffer : ?(*(char))) -> unit

Parameters

NameTypeNotes
stream*(FILE)
buffer?(*(char))

Returns: unit

setvbuf function
fn(stream : *(FILE), buffer : ?(*(char)), mode : int, size : usize) -> int

Parameters

NameTypeNotes
stream*(FILE)
buffer?(*(char))
modeint
sizeusize

Returns: int

fseek function
fn(stream : *(FILE), offset : int, whence : int) -> int

Parameters

NameTypeNotes
stream*(FILE)
offsetint
whenceint

Returns: int

ftell function
fn(stream : *(FILE)) -> int

Parameters

NameTypeNotes
stream*(FILE)

Returns: int

rewind function
fn(stream : *(FILE)) -> unit

Parameters

NameTypeNotes
stream*(FILE)

Returns: unit

fgetpos function
fn(stream : *(FILE), pos : *(fpos_t)) -> int

Parameters

NameTypeNotes
stream*(FILE)
pos*(fpos_t)

Returns: int

fsetpos function
fn(stream : *(FILE), pos : *(fpos_t)) -> int

Parameters

NameTypeNotes
stream*(FILE)
pos*(fpos_t)

Returns: int

fgetc function
fn(stream : *(FILE)) -> int

Parameters

NameTypeNotes
stream*(FILE)

Returns: int

getc function
fn(stream : *(FILE)) -> int

Parameters

NameTypeNotes
stream*(FILE)

Returns: int

getchar function
fn() -> int

Returns: int

fputc function
fn(c : int, stream : *(FILE)) -> int

Parameters

NameTypeNotes
cint
stream*(FILE)

Returns: int

putc function
fn(c : int, stream : *(FILE)) -> int

Parameters

NameTypeNotes
cint
stream*(FILE)

Returns: int

putchar function
fn(c : int) -> int

Parameters

NameTypeNotes
cint

Returns: int

ungetc function
fn(c : int, stream : *(FILE)) -> int

Parameters

NameTypeNotes
cint
stream*(FILE)

Returns: int

fgets function
fn(s : *(char), n : int, stream : *(FILE)) -> ?(*(char))

Parameters

NameTypeNotes
s*(char)
nint
stream*(FILE)

Returns: ?(*(char))

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

Parameters

NameTypeNotes
s*(char)

Returns: ?(*(char))

fputs function
fn(s : *(char), stream : *(FILE)) -> int

Parameters

NameTypeNotes
s*(char)
stream*(FILE)

Returns: int

puts function
fn(s : *(char)) -> int

Parameters

NameTypeNotes
s*(char)

Returns: int

printf function
fn(format : *(char)) -> int

Parameters

NameTypeNotes
format*(char)

Returns: int

fprintf function
fn(stream : *(FILE), format : *(char)) -> int

Parameters

NameTypeNotes
stream*(FILE)
format*(char)

Returns: int

sprintf function
fn(s : *(char), format : *(char)) -> int

Parameters

NameTypeNotes
s*(char)
format*(char)

Returns: int

snprintf function
fn(s : *(char), n : usize, format : *(char)) -> int

Parameters

NameTypeNotes
s*(char)
nusize
format*(char)

Returns: int

vprintf function
fn(format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
format*(char)
apva_list

Returns: int

vfprintf function
fn(stream : *(FILE), format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
stream*(FILE)
format*(char)
apva_list

Returns: int

vsprintf function
fn(s : *(char), format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
s*(char)
format*(char)
apva_list

Returns: int

vsnprintf function
fn(s : *(char), n : usize, format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
s*(char)
nusize
format*(char)
apva_list

Returns: int

scanf function
fn(format : *(char)) -> int

Parameters

NameTypeNotes
format*(char)

Returns: int

fscanf function
fn(stream : *(FILE), format : *(char)) -> int

Parameters

NameTypeNotes
stream*(FILE)
format*(char)

Returns: int

sscanf function
fn(s : *(char), format : *(char)) -> int

Parameters

NameTypeNotes
s*(char)
format*(char)

Returns: int

vscanf function
fn(format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
format*(char)
apva_list

Returns: int

vfscanf function
fn(stream : *(FILE), format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
stream*(FILE)
format*(char)
apva_list

Returns: int

vsscanf function
fn(s : *(char), format : *(char), ap : va_list) -> int

Parameters

NameTypeNotes
s*(char)
format*(char)
apva_list

Returns: int

fread function
fn(ptr : *(void), size : usize, nmemb : usize, stream : *(FILE)) -> usize

Parameters

NameTypeNotes
ptr*(void)
sizeusize
nmembusize
stream*(FILE)

Returns: usize

fwrite function
fn(ptr : *(void), size : usize, nmemb : usize, stream : *(FILE)) -> usize

Parameters

NameTypeNotes
ptr*(void)
sizeusize
nmembusize
stream*(FILE)

Returns: usize

remove function
fn(filename : *(char)) -> int

Parameters

NameTypeNotes
filename*(char)

Returns: int

rename function
fn(old : *(char), new : *(char)) -> int

Parameters

NameTypeNotes
old*(char)
new*(char)

Returns: int

tmpfile function
fn() -> ?(*(FILE))

Returns: ?(*(FILE))

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

Parameters

NameTypeNotes
s?(*(char))

Returns: ?(*(char))

feof function
fn(stream : *(FILE)) -> int

Parameters

NameTypeNotes
stream*(FILE)

Returns: int

ferror function
fn(stream : *(FILE)) -> int

Parameters

NameTypeNotes
stream*(FILE)

Returns: int

clearerr function
fn(stream : *(FILE)) -> unit

Parameters

NameTypeNotes
stream*(FILE)

Returns: unit

perror function
fn(s : *(char)) -> unit

Parameters

NameTypeNotes
s*(char)

Returns: unit

Constants

stdin constant *(FILE)

Value: <unknown: *(FILE)>

stdout constant *(FILE)

Value: <unknown: *(FILE)>

stderr constant *(FILE)

Value: <unknown: *(FILE)>

EOF constant int

Value: <unknown: int>

BUFSIZ constant int

Value: <unknown: int>

FILENAME_MAX constant int

Value: <unknown: int>

FOPEN_MAX constant int

Value: <unknown: int>

TMP_MAX constant int

Value: <unknown: int>

L_tmpnam constant int

Value: <unknown: int>

SEEK_SET constant int

Value: <unknown: int>

SEEK_CUR constant int

Value: <unknown: int>

SEEK_END constant int

Value: <unknown: int>

_IOFBF constant int

Value: <unknown: int>

_IOLBF constant int

Value: <unknown: int>

_IONBF constant int

Value: <unknown: int>