.. include:: ../global.rst .. _`libc typedefs`: .. idio:currentmodule:: libc libc typedefs ------------- There are many :lname:`C` *typedef*\ s in use in :lname:`Idio` which are *essential* for correct interaction with the :lname:`C` API. There will be a type definition, say, ``pid_t``, which maps directly to, or through a chain of other typedefs to, a :lname:`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 :ref:`C ` predicate, here, ``C/int?``. .. rst-class:: center \* Even though the :lname:`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 :lname:`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 :file:`lib/libc-api.idio`. .. _`libc/blkcnt_t`: .. idio:value:: blkcnt_t :type: symbol :value: 'long :canonical: libc/blkcnt_t .. _`libc/blkcnt_t?`: .. idio: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 .. _`libc/blksize_t`: .. idio:value:: blksize_t :type: symbol :value: 'long :canonical: libc/blksize_t .. _`libc/blksize_t?`: .. idio: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 .. _`libc/cc_t`: .. idio:value:: cc_t :type: symbol :value: 'uchar :canonical: libc/cc_t .. _`libc/cc_t?`: .. idio: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 .. _`libc/clock_t`: .. idio:value:: clock_t :type: symbol :value: 'long :canonical: libc/clock_t .. _`libc/clock_t?`: .. idio: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 .. _`libc/dev_t`: .. idio:value:: dev_t :type: symbol :value: 'ulong :canonical: libc/dev_t .. _`libc/dev_t?`: .. idio: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 .. _`libc/fsblkcnt_t`: .. idio:value:: fsblkcnt_t :type: symbol :value: 'ulong :canonical: libc/fsblkcnt_t .. _`libc/fsblkcnt_t?`: .. idio: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 .. _`libc/fsfilcnt_t`: .. idio:value:: fsfilcnt_t :type: symbol :value: 'ulong :canonical: libc/fsfilcnt_t .. _`libc/fsfilcnt_t?`: .. idio: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 .. _`libc/gid_t`: .. idio:value:: gid_t :type: symbol :value: 'uint :canonical: libc/gid_t .. _`libc/gid_t?`: .. idio: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 .. _`libc/id_t`: .. idio:value:: id_t :type: symbol :value: 'uint :canonical: libc/id_t .. _`libc/id_t?`: .. idio: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 .. _`libc/ino_t`: .. idio:value:: ino_t :type: symbol :value: 'ulong :canonical: libc/ino_t .. _`libc/ino_t?`: .. idio: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 .. _`libc/int64_t`: .. idio:value:: int64_t :type: symbol :value: 'long :canonical: libc/int64_t .. _`libc/int64_t?`: .. idio: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 .. _`libc/intmax_t`: .. idio:value:: intmax_t :type: symbol :value: 'long :canonical: libc/intmax_t .. _`libc/intmax_t?`: .. idio: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 .. _`libc/intptr_t`: .. idio:value:: intptr_t :type: symbol :value: 'long :canonical: libc/intptr_t .. _`libc/intptr_t?`: .. idio: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 .. _`libc/mode_t`: .. idio:value:: mode_t :type: symbol :value: 'uint :canonical: libc/mode_t .. _`libc/mode_t?`: .. idio: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 .. _`libc/nfds_t`: .. idio:value:: nfds_t :type: symbol :value: 'ulong :canonical: libc/nfds_t .. _`libc/nfds_t?`: .. idio: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 .. _`libc/nlink_t`: .. idio:value:: nlink_t :type: symbol :value: 'ulong :canonical: libc/nlink_t .. _`libc/nlink_t?`: .. idio: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 .. _`libc/off_t`: .. idio:value:: off_t :type: symbol :value: 'long :canonical: libc/off_t .. _`libc/off_t?`: .. idio: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 .. _`libc/pid_t`: .. idio:value:: pid_t :type: symbol :value: 'int :canonical: libc/pid_t .. _`libc/pid_t?`: .. idio: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 .. _`libc/rlim_t`: .. idio:value:: rlim_t :type: symbol :value: 'ulong :canonical: libc/rlim_t .. _`libc/rlim_t?`: .. idio: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 .. _`libc/size_t`: .. idio:value:: size_t :type: symbol :value: 'ulong :canonical: libc/size_t .. _`libc/size_t?`: .. idio: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 .. _`libc/speed_t`: .. idio:value:: speed_t :type: symbol :value: 'uint :canonical: libc/speed_t ``speed_t`` is not defined on all systems, notably SunOS. .. _`libc/speed_t?`: .. idio: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. .. _`libc/ssize_t`: .. idio:value:: ssize_t :type: symbol :value: 'long :canonical: libc/ssize_t .. _`libc/ssize_t?`: .. idio: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 .. _`libc/suseconds_t`: .. idio:value:: suseconds_t :type: symbol :value: 'long :canonical: libc/suseconds_t .. _`libc/suseconds_t?`: .. idio: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 .. _`libc/tcflag_t`: .. idio:value:: tcflag_t :type: symbol :value: 'uint :canonical: libc/tcflag_t .. _`libc/tcflag_t?`: .. idio: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 .. _`libc/time_t`: .. idio:value:: time_t :type: symbol :value: 'long :canonical: libc/time_t .. _`libc/time_t?`: .. idio: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 .. _`libc/uid_t`: .. idio:value:: uid_t :type: symbol :value: 'uint :canonical: libc/uid_t .. _`libc/uid_t?`: .. idio: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 .. _`libc/uintmax_t`: .. idio:value:: uintmax_t :type: symbol :value: 'ulong :canonical: libc/uintmax_t .. _`libc/uintmax_t?`: .. idio: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 .. include:: ../commit.rst