sys_types.h(3)             POSIX Programmer's Manual            sys_types.h(3)



PPRROOLLOOGG
       This manual page is part of the POSIX Programmer's Manual.  The OS
       implementation of this interface may differ (consult the corresponding
       OS manual page for details of OS behavior), or the interface may not be
       implemented on OS.

NNAAMMEE
       sys/types.h -- data types

SSYYNNOOPPSSIISS
       #include <sys/types.h>

DDEESSCCRRIIPPTTIIOONN
       The _<_s_y_s_/_t_y_p_e_s_._h_> header shall define at least the following types:

       bbllkkccnntt__tt        Used for file block counts.

       bbllkkssiizzee__tt       Used for block sizes.

       cclloocckk__tt         Used for system times in clock ticks or CLOCKS_PER_SEC;
                       see _<_t_i_m_e_._h_>.

       cclloocckkiidd__tt       Used for clock ID type in the clock and timer
                       functions.

       ddeevv__tt           Used for device IDs.

       ffssbbllkkccnntt__tt      Used for file system block counts.

       ffssffiillccnntt__tt      Used for file system file counts.

       ggiidd__tt           Used for group IDs.

       iidd__tt            Used as a general identifier; can be used to contain at
                       least a ppiidd__tt, uuiidd__tt, or ggiidd__tt.

       iinnoo__tt           Used for file serial numbers.

       kkeeyy__tt           Used for XSI interprocess communication.

       mmooddee__tt          Used for some file attributes.

       nnlliinnkk__tt         Used for link counts.

       ooffff__tt           Used for file sizes.

       ppiidd__tt           Used for process IDs and process group IDs.

       pptthhrreeaadd__aattttrr__tt  Used to identify a thread attribute object.

       pptthhrreeaadd__bbaarrrriieerr__tt
                       Used to identify a barrier.

       pptthhrreeaadd__bbaarrrriieerraattttrr__tt
                       Used to define a barrier attributes object.

       pptthhrreeaadd__ccoonndd__tt  Used for condition variables.

       pptthhrreeaadd__ccoonnddaattttrr__tt
                       Used to identify a condition attribute object.

       pptthhrreeaadd__kkeeyy__tt   Used for thread-specific data keys.

       pptthhrreeaadd__mmuutteexx__tt Used for mutexes.

       pptthhrreeaadd__mmuutteexxaattttrr__tt
                       Used to identify a mutex attribute object.

       pptthhrreeaadd__oonnccee__tt  Used for dynamic package initialization.

       pptthhrreeaadd__rrwwlloocckk__tt
                       Used for read-write locks.

       pptthhrreeaadd__rrwwlloocckkaattttrr__tt
                       Used for read-write lock attributes.

       pptthhrreeaadd__ssppiinnlloocckk__tt
                       Used to identify a spin lock.

       pptthhrreeaadd__tt       Used to identify a thread.

       ssiizzee__tt          Used for sizes of objects.

       ssssiizzee__tt         Used for a count of bytes or an error indication.

       ssuusseeccoonnddss__tt     Used for time in microseconds.

       ttiimmee__tt          Used for time in seconds.

       ttiimmeerr__tt         Used for timer ID returned by _t_i_m_e_r___c_r_e_a_t_e().

       ttrraaccee__aattttrr__tt    Used to identify a trace stream attributes object

       ttrraaccee__eevveenntt__iidd__tt
                       Used to identify a trace event type.

       ttrraaccee__eevveenntt__sseett__tt
                       Used to identify a trace event type set.

       ttrraaccee__iidd__tt      Used to identify a trace stream.

       uuiidd__tt           Used for user IDs.

       All of the types shall be defined as arithmetic types of an appropriate
       length, with the following exceptions:

       pptthhrreeaadd__aattttrr__tt
       pptthhrreeaadd__bbaarrrriieerr__tt
       pptthhrreeaadd__bbaarrrriieerraattttrr__tt
       pptthhrreeaadd__ccoonndd__tt
       pptthhrreeaadd__ccoonnddaattttrr__tt
       pptthhrreeaadd__kkeeyy__tt
       pptthhrreeaadd__mmuutteexx__tt
       pptthhrreeaadd__mmuutteexxaattttrr__tt
       pptthhrreeaadd__oonnccee__tt
       pptthhrreeaadd__rrwwlloocckk__tt
       pptthhrreeaadd__rrwwlloocckkaattttrr__tt
       pptthhrreeaadd__ssppiinnlloocckk__tt
       pptthhrreeaadd__tt
       ttiimmeerr__tt
       ttrraaccee__aattttrr__tt
       ttrraaccee__eevveenntt__iidd__tt
       ttrraaccee__eevveenntt__sseett__tt
       ttrraaccee__iidd__tt

       Additionally:

        *  mmooddee__tt shall be an integer type.

        *  ddeevv__tt shall be an integer type.

        *  nnlliinnkk__tt, uuiidd__tt, ggiidd__tt, and iidd__tt shall be integer types.

        *  bbllkkccnntt__tt and ooffff__tt shall be signed integer types.

        *  ffssbbllkkccnntt__tt, ffssffiillccnntt__tt, and iinnoo__tt shall be defined as unsigned
           integer types.

        *  ssiizzee__tt shall be an unsigned integer type.

        *  bbllkkssiizzee__tt, ppiidd__tt, and ssssiizzee__tt shall be signed integer types.

        *  cclloocckk__tt shall be an integer or real-floating type.  ttiimmee__tt shall be
           an integer type.

       The type ssssiizzee__tt shall be capable of storing values at least in the
       range [-1, {SSIZE_MAX}].

       The type ssuusseeccoonnddss__tt shall be a signed integer type capable of storing
       values at least in the range [-1, 1000000].

       The implementation shall support one or more programming environments
       in which the widths of bbllkkssiizzee__tt, ppiidd__tt, ssiizzee__tt, ssssiizzee__tt, and
       ssuusseeccoonnddss__tt are no greater than the width of type lloonngg.  The names of
       these programming environments can be obtained using the _c_o_n_f_s_t_r()
       function or the _g_e_t_c_o_n_f utility.

       There are no defined comparison or assignment operators for the
       following types:

       pptthhrreeaadd__aattttrr__tt
       pptthhrreeaadd__bbaarrrriieerr__tt
       pptthhrreeaadd__bbaarrrriieerraattttrr__tt
       pptthhrreeaadd__ccoonndd__tt
       pptthhrreeaadd__ccoonnddaattttrr__tt
       pptthhrreeaadd__mmuutteexx__tt
       pptthhrreeaadd__mmuutteexxaattttrr__tt
       pptthhrreeaadd__rrwwlloocckk__tt
       pptthhrreeaadd__rrwwlloocckkaattttrr__tt
       pptthhrreeaadd__ssppiinnlloocckk__tt
       ttiimmeerr__tt
       ttrraaccee__aattttrr__tt

       _T_h_e _f_o_l_l_o_w_i_n_g _s_e_c_t_i_o_n_s _a_r_e _i_n_f_o_r_m_a_t_i_v_e_.

AAPPPPLLIICCAATTIIOONN UUSSAAGGEE
       None.

RRAATTIIOONNAALLEE
       None.

FFUUTTUURREE DDIIRREECCTTIIOONNSS
       None.

SSEEEE AALLSSOO
       <<ttiimmee..hh>>

       The System Interfaces volume of POSIX.1-2017, _c_o_n_f_s_t_r()

       The Shell and Utilities volume of POSIX.1-2017, _g_e_t_c_o_n_f

CCOOPPYYRRIIGGHHTT
       Portions of this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1-2017, Standard for Information Technology --
       Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the
       Institute of Electrical and Electronics Engineers, Inc and The Open
       Group.  In the event of any discrepancy between this version and the
       original IEEE and The Open Group Standard, the original IEEE and The
       Open Group Standard is the referee document. The original Standard can
       be obtained online at http://www.opengroup.org/unix/online.html .

       Any typographical or formatting errors that appear in this page are
       most likely to have been introduced during the conversion of the source
       files to man page format. To report such errors, see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .



IEEE/The Open Group                  2017                       sys_types.h(3)
