The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> sys/types.h - data types

#### SYNOPSIS

> `#include <sys/types.h>`

#### DESCRIPTION

> The <sys/types.h> header shall define 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
>   [XSI] 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
>   [OB TRC] Used to identify a trace stream attributes object
> trace_event_id_t
>   [OB TRC] Used to identify a trace event type.
> trace_event_set_t
>   [OB TEF] Used to identify a trace event type set.
> trace_id_t
>   [OB TRC] Used to identify a trace stream.
> uid_t
>   Used for user IDs.

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

> 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
> pthread_t
> timer_t
> [OB TRC]
> trace_attr_t
> trace_event_id_t
> [OB TEF]
> trace_event_set_t
> [OB TRC]
> trace_id_t

> Additionally:

> - mode_t shall be an integer type.

> - dev_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.

> - clock_t shall be an integer or real-floating type. [CX] time_t shall be an integer type.

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

> [XSI] The type suseconds_t 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 blksize_t, pid_t, size_t, ssize_t, and suseconds_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 following 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
> timer_t
> [OB TRC]
> trace_attr_t

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <time.h>

> XSH confstr

> XCU getconf

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 5

> The clockid_t and timer_t types are defined for alignment with the POSIX Realtime Extension.

> The types blkcnt_t, blksize_t, fsblkcnt_t, fsfilcnt_t, and suseconds_t are added.

> Large File System extensions are added.

> Updated for alignment with the POSIX Threads Extension.

#### Issue 6

> The pthread_barrier_t, pthread_barrierattr_t, and pthread_spinlock_t types are added for alignment with IEEE Std 1003.1j-2000.

> The margin code is changed from XSI to THR for the pthread_rwlock_t and pthread_rwlockattr_t types as Read-Write Locks have been absorbed into the POSIX Threads option. The threads types are marked THR.

> IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/26 is applied, adding pthread_t to the list of types that are not required to be arithmetic types, thus allowing pthread_t to be defined as a structure.

#### Issue 7

> Austin Group Interpretation 1003.1-2001 #033 is applied, requiring key_t to be an arithmetic type.

> The Trace option types are marked obsolescent.

> The clock_t and id_t types are moved from the XSI option to the Base.

> The pthread_barrier_t and pthread_barrierattr_t types are moved from the Barriers option to the Base.

> The pthread_spinlock_t type is moved from the Spin Locks option to the Base.

> Functionality relating to the Timers and Threads options is moved to the Base.

> POSIX.1-2008, Technical Corrigendum 1, XBD/TC1-2008/0069 [210], XBD/TC1-2008/0070 [28], XBD/TC1-2008/0071 [376], XBD/TC1-2008/0072 [210], and XBD/TC1-2008/0073 [327] are applied.

> POSIX.1-2008, Technical Corrigendum 2, XBD/TC2-2008/0079 [856] and XBD/TC2-2008/0080 [659] are applied.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]