libc typedefs

There are many C typedefs in use in Idio which are essential for correct interaction with the C API.

There will be a type definition, say, pid_t, which maps directly to, or through a chain of other typedefs to, a C base type definition, a symbol, say, 'int.

In parallel, there is a corresponding type predicate, here, pid_t?, which maps directly to, or through a chain of other predicates to, the corresponding C predicate, here, C/int?.

*

Even though the C API defines a portable typedef, say, pid_t, your operating system might use some intermediate typedefs. Fedora uses __pid_t, for example, in the function interfaces and pid_t is a typedef of __pid_t.

The chain of mappings for both the typedef and predicate to the underlying C base type and predicate will reflect those intermediate mappings.


Attention

The following mappings are for the system this documentation was built on and are representative of that system, not yours.

The complete set of typedefs and predicates are defined for your system in lib/libc-api.idio.

value blkcnt_t
Type:

symbol

Value:

‘long

Canonical:

libc/blkcnt_t

function libc/blkcnt_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value blksize_t
Type:

symbol

Value:

‘long

Canonical:

libc/blksize_t

function libc/blksize_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value cc_t
Type:

symbol

Value:

‘uchar

Canonical:

libc/cc_t

function libc/cc_t? o

test if o is a C/uchar

Param o:

object to test

Return:

#t if o is a C/uchar, #f otherwise

value clock_t
Type:

symbol

Value:

‘long

Canonical:

libc/clock_t

function libc/clock_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value dev_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/dev_t

function libc/dev_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value fsblkcnt_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/fsblkcnt_t

function libc/fsblkcnt_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value fsfilcnt_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/fsfilcnt_t

function libc/fsfilcnt_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value gid_t
Type:

symbol

Value:

‘uint

Canonical:

libc/gid_t

function libc/gid_t? o

test if o is a C/uint

Param o:

object to test

Return:

#t if o is a C/uint, #f otherwise

value id_t
Type:

symbol

Value:

‘uint

Canonical:

libc/id_t

function libc/id_t? o

test if o is a C/uint

Param o:

object to test

Return:

#t if o is a C/uint, #f otherwise

value ino_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/ino_t

function libc/ino_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value int64_t
Type:

symbol

Value:

‘long

Canonical:

libc/int64_t

function libc/int64_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value intmax_t
Type:

symbol

Value:

‘long

Canonical:

libc/intmax_t

function libc/intmax_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value intptr_t
Type:

symbol

Value:

‘long

Canonical:

libc/intptr_t

function libc/intptr_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value mode_t
Type:

symbol

Value:

‘uint

Canonical:

libc/mode_t

function libc/mode_t? o

test if o is a C/uint

Param o:

object to test

Return:

#t if o is a C/uint, #f otherwise

value nfds_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/nfds_t

function libc/nfds_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

function libc/nlink_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value off_t
Type:

symbol

Value:

‘long

Canonical:

libc/off_t

function libc/off_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value pid_t
Type:

symbol

Value:

‘int

Canonical:

libc/pid_t

function libc/pid_t? o

test if o is a C/int

Param o:

object to test

Return:

#t if o is a C/int, #f otherwise

value rlim_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/rlim_t

function libc/rlim_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value size_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/size_t

function libc/size_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

value speed_t
Type:

symbol

Value:

‘uint

Canonical:

libc/speed_t

speed_t is not defined on all systems, notably SunOS.

function libc/speed_t? o

test if o is a C/uint

Param o:

object to test

Return:

#t if o is a C/uint, #f otherwise

speed_t is not defined on all systems, notably SunOS.

value ssize_t
Type:

symbol

Value:

‘long

Canonical:

libc/ssize_t

function libc/ssize_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value suseconds_t
Type:

symbol

Value:

‘long

Canonical:

libc/suseconds_t

function libc/suseconds_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value tcflag_t
Type:

symbol

Value:

‘uint

Canonical:

libc/tcflag_t

function libc/tcflag_t? o

test if o is a C/uint

Param o:

object to test

Return:

#t if o is a C/uint, #f otherwise

value time_t
Type:

symbol

Value:

‘long

Canonical:

libc/time_t

function libc/time_t? o

test if o is a C/long

Param o:

object to test

Return:

#t if o is a C/long, #f otherwise

value uid_t
Type:

symbol

Value:

‘uint

Canonical:

libc/uid_t

function libc/uid_t? o

test if o is a C/uint

Param o:

object to test

Return:

#t if o is a C/uint, #f otherwise

value uintmax_t
Type:

symbol

Value:

‘ulong

Canonical:

libc/uintmax_t

function libc/uintmax_t? o

test if o is a C/ulong

Param o:

object to test

Return:

#t if o is a C/ulong, #f otherwise

Last built at 2024-05-17T06:10:52Z+0000 from 62cca4c (dev) for Idio 0.3.b.6