       
SYNOPSIS
       #include <time.h>

DESCRIPTION
       Some  of the functionality described on this reference page extends the
       ISO C standard. Applications shall define the appropriate feature  test
       macro  (see  the System Interfaces volume of IEEE Std 1003.1-2001, Sec-
       tion 2.2, The Compilation Environment)  to  enable  the  visibility  of
       these symbols in this header.

       The <'time'.h> header shall declare the structure 'tm', which shall include
       at least the following members:


              int    'tm_sec'   Seconds [0,60].
              int    'tm_min'   Minutes [0,59].
              int    'tm_hour'  Hour [0,23].
              int    'tm_mday'  Day of month [1,31].
              int    'tm_mon'   Month of year [0,11].
              int    'tm_year'  Years since 1900.
              int    'tm_wday'  Day of week [0,6] (Sunday =0).
              int    'tm_yday'  Day of year [0,365].
              int    'tm_isdst' Daylight Savings flag.

       The value of tm_isdst shall be positive if Daylight Savings Time is  in
       effect,  0  if  Daylight Savings Time is not in effect, and negative if
       the information is not available.

       The <time.h> header shall define the following symbolic names:

       NULL   Null pointer constant.

       'CLOCKS_PER_SEC'
              A number used to convert the value returned by the clock() func-
              tion into seconds.

       'CLOCK_PROCESS_CPUTIME_ID'

              The identifier of the CPU-time clock associated with the process
              making a clock() or timer*() function call.

       'CLOCK_THREAD_CPUTIME_ID'

              The identifier of the CPU-time clock associated with the  thread
              making a clock() or timer*() function call.


       The  <time.h> header shall declare the structure 'timespec', which has at
       least the following members:


              time_t  'tv_sec'    Seconds.
              long    'tv_nsec'   Nanoseconds.

       The <time.h> header shall also declare the 'itimerspec' structure,  which
       has at least the following members:


              struct timespec  'it_interval'  Timer period.
              struct timespec  'it_value'     Timer expiration.

       The following manifest constants shall be defined:

       'CLOCK_REALTIME'
              The identifier of the system-wide realtime clock.

       'TIMER_ABSTIME'
              Flag  indicating  time  is  absolute. For functions taking timer
              objects, this refers to the clock associated with the timer.

       'CLOCK_MONOTONIC'

              The identifier for the system-wide  monotonic  clock,  which  is
              defined as a clock whose value cannot be set via clock_settime()
              and which cannot have backward clock jumps. The maximum possible
              clock jump shall be implementation-defined.


       The  clock_t,  size_t, time_t,   clockid_t, and timer_t  types shall be
       defined as described in <sys/types.h> .

       Although the value of CLOCKS_PER_SEC is required to be 1 million on all
       XSI-conformant  systems,  it  may  be variable on other systems, and it
       should not be assumed that CLOCKS_PER_SEC is a compile-time constant.

       The <time.h> header shall provide a declaration for 'getdate_err'.

       
SYNOPSIS
       #include <sys/timeb.h>

DESCRIPTION
       The <sys/timeb.h> header shall define the 'timeb' structure that includes
       at least the following members:


              time_t         'time'     The seconds portion of the current time.
              unsigned short 'millitm'  The milliseconds portion of the current time.
              short          'timezone' The local timezone in minutes west of Greenwich.
              short          'dstflag'  TRUE if Daylight Savings Time is in effect.

       The time_t type shall be defined as described in <sys/types.h> .

       The following shall be declared as a function and may also  be  defined
       as a macro. A function prototype shall be provided.


              int   ftime(struct timeb *); (LEGACY )

       
SYNOPSIS
       #include <sys/times.h>

DESCRIPTION
       The  <sys/'times'.h>  header  shall  define  the  structure 'tms', which is
       returned by times() and includes at least the following members:


              clock_t  'tms_utime'  User CPU time.
              clock_t  'tms_stime'  System CPU time.
              clock_t  'tms_cutime' User CPU time of terminated child processes.
              clock_t  'tms_cstime' System CPU time of terminated child processes.

       The clock_t type shall be defined as described in <sys/types.h> .

       The following shall be declared as a function and may also  be  defined
       as a macro. A function prototype shall be provided.


              clock_t times(struct tms *);

       
SYNOPSIS
       #include <trace.h>

DESCRIPTION
       The  <'trace'.h> header shall define the 'posix_trace_event_info' structure
       that includes at least the following members:


              trace_event_id_t  'posix_event_id'
              pid_t             'posix_pid'
              void             *'posix_prog_address'
              int               'posix_truncation_status'
              struct timespec   'posix_timestamp'

              pthread_t         'posix_thread_id'


       The <trace.h> header shall define the 'posix_trace_status_info' structure
       that includes at least the following members:


              int     'posix_stream_status'
              int     'posix_stream_full_status'
              int     'posix_stream_overrun_status'

              int     'posix_stream_flush_status'
              int     'posix_stream_flush_error'
              int     'posix_log_overrun_status'
              int     'posix_log_full_status'


       The <trace.h> header shall define the following symbols:


       'POSIX_TRACE_ALL_EVENTS'

       'POSIX_TRACE_APPEND'


       'POSIX_TRACE_CLOSE_FOR_CHILD'


       'POSIX_TRACE_FILTER'


       'POSIX_TRACE_FLUSH'
       'POSIX_TRACE_FLUSH_START'
       'POSIX_TRACE_FLUSH_STOP'
       'POSIX_TRACE_FLUSHING'

       'POSIX_TRACE_FULL'
       'POSIX_TRACE_LOOP'
       'POSIX_TRACE_NO_OVERRUN'

       'POSIX_TRACE_NOT_FLUSHING'

       'POSIX_TRACE_NOT_FULL'

       'POSIX_TRACE_INHERITED'

       'POSIX_TRACE_NOT_TRUNCATED'
       'POSIX_TRACE_OVERFLOW'
       'POSIX_TRACE_OVERRUN'
       'POSIX_TRACE_RESUME'
       'POSIX_TRACE_RUNNING'
       'POSIX_TRACE_START'
       'POSIX_TRACE_STOP'
       'POSIX_TRACE_SUSPENDED'
       'POSIX_TRACE_SYSTEM_EVENTS'
       'POSIX_TRACE_TRUNCATED_READ'
       'POSIX_TRACE_TRUNCATED_RECORD'
       'POSIX_TRACE_UNNAMED_USER_EVENT'
       'POSIX_TRACE_UNTIL_FULL'
       'POSIX_TRACE_WOPID_EVENTS'

       The following types shall be defined as described in <sys/types.h> :


       trace_attr_t
       trace_id_t
       trace_event_id_t

       trace_event_set_t


       
SYNOPSIS
       #include <sys/types.h>

DESCRIPTION
       The  <sys/'types'.h>  header  shall  include definitions for at least the
       following types:

       'blkcnt_t'
              Used for file block counts.

       'blksize_t'
              Used for block sizes.

       'clock_t'
              Used for system times in  clock  ticks  or  CLOCKS_PER_SEC;  see
              <time.h> .

       'clockid_t'
              Used for clock ID type in the clock and timer functions.

       'dev_t'  Used for device IDs.

       'fsblkcnt_t'
              Used for file system block counts.

       'fsfilcnt_t'
              Used for file system file counts.

       'gid_t'  Used for group IDs.

       'id_t'   Used  as a general identifier; can be used to contain at least a
              pid_t, uid_t, or gid_t.

       'ino_t'  Used for file serial numbers.

       'key_t'  Used for XSI interprocess communication.

       'mode_t' Used for some file attributes.

       'nlink_t'
              Used for link counts.

       'off_t'  Used for file sizes.

       'pid_t'  Used for process IDs and process group IDs.

       'pthread_attr_t'
              Used to identify a thread attribute object.

       'pthread_barrier_t'
              Used to identify a barrier.

       'pthread_barrierattr_t'
              Used to define a barrier attributes object.

       'pthread_cond_t'
              Used for condition variables.

       'pthread_condattr_t'
              Used to identify a condition attribute object.

       'pthread_key_t'
              Used for thread-specific data keys.

       'pthread_mutex_t'
              Used for mutexes.

       'pthread_mutexattr_t'
              Used to identify a mutex attribute object.

       'pthread_once_t'
              Used for dynamic package initialization.

       'pthread_rwlock_t'
              Used for read-write locks.

       'pthread_rwlockattr_t'
              Used for read-write lock attributes.

       'pthread_spinlock_t'
              Used to identify a spin lock.

       'pthread_t'
              Used to identify a thread.

       'size_t' Used for sizes of objects.

       'ssize_t'
              Used for a count of bytes or an error indication.

       'suseconds_t'
              Used for time in microseconds.

       'time_t' Used for time in seconds.

       'timer_t'
              Used for timer ID returned by timer_create().

       'trace_attr_t'
              Used to identify a trace stream attributes object.

       'trace_event_id_t'
              Used to identify a trace event type.

       'trace_event_set_t'
              Used to identify a trace event type set.

       'trace_id_t'
              Used to identify a trace stream.

       'uid_t'  Used for user IDs.

       'useconds_t'
              Used for time in microseconds.


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



       key_t


       pthread_attr_t


       pthread_barrier_t
       pthread_barrierattr_t


       pthread_cond_t
       pthread_condattr_t
       pthread_key_t
       pthread_mutex_t
       pthread_mutexattr_t
       pthread_once_t
       pthread_rwlock_t
       pthread_rwlockattr_t


       pthread_spinlock_t


       trace_attr_t
       trace_event_id_t


       trace_event_set_t


       trace_id_t


       Additionally:

        * mode_t shall be an integer type.


        * nlink_t, uid_t, gid_t, and id_t shall be integer types.


        * blkcnt_t and off_t shall be signed integer types.


        * fsblkcnt_t,  fsfilcnt_t,    and  ino_t  shall be defined as unsigned
          integer types.


        * size_t shall be an unsigned integer type.


        * blksize_t, pid_t, and ssize_t shall be signed integer types.


        * time_t and clock_t shall be integer or real-floating types.


       The type ssize_t shall be capable of storing values  at  least  in  the
       range  [-1, {SSIZE_MAX}].     The  type useconds_t shall be an unsigned
       integer  type  capable  of  storing  values  at  least  in  the   range
       [0, 1000000]. The type suseconds_t shall be a signed integer type capa-
       ble of storing values at least in the range [-1, 1000000].

       The implementation shall support one or more  programming  environments
       in  which the widths of blksize_t, pid_t, size_t, ssize_t, suseconds_t,
       and useconds_t are no greater than the width of type long. The names of
       these  programming  environments  can  be  obtained using the confstr()
       function or the getconf utility.

       There are no defined comparison or assignment operators for the follow-
       ing types:



       pthread_attr_t


       pthread_barrier_t
       pthread_barrierattr_t


       pthread_cond_t
       pthread_condattr_t
       pthread_mutex_t
       pthread_mutexattr_t
       pthread_rwlock_t
       pthread_rwlockattr_t


       pthread_spinlock_t


       trace_attr_t


       
SYNOPSIS
       #include <ucontext.h>

DESCRIPTION
       The  <'ucontext'.h> header shall define the 'mcontext_t' type through type-
       def.

       The <ucontext.h> header shall define the 'ucontext_t' type as a structure
       that shall include at least the following members:


              ucontext_t *'uc_link'     Pointer to the context that is resumed
                                      when this context returns.
              sigset_t    'uc_sigmask'  The set of signals that are blocked when this
                                      context is active.
              stack_t     'uc_stack'    The stack used by this context.
              mcontext_t  'uc_mcontext' A machine-specific representation of the saved
                                      context.

       The types sigset_t and stack_t shall be defined as in <signal.h> .

       

       
SYNOPSIS
       #include <ulimit.h>

DESCRIPTION
       The  <'ulimit'.h>  header shall define the symbolic constants used by the
       ulimit() function.

       Symbolic constants:

       'UL_GETFSIZE'
              Get maximum file size.

       'UL_SETFSIZE'
              Set maximum file size.


       The following shall be declared as a function and may also  be  defined
       as a macro. A function prototype shall be provided.


              long ulimit(int, ...);

       

