The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> sys/types.h - data types

#### 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
>   [XSI] Used for system times in clock ticks or CLOCKS_PER_SEC; see <time.h>.
> clockid_t
>   [TMR] Used for clock ID type in the clock and timer functions.
> dev_t
>   Used for device IDs.
> fsblkcnt_t
>   [XSI] Used for file system block counts.
> fsfilcnt_t
>   [XSI] Used for file system file counts.
> gid_t
>   Used for group IDs.
> id_t
>   [XSI] 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
>   [THR] Used to identify a thread attribute object.
> pthread_barrier_t
>   [BAR] Used to identify a barrier.
> pthread_barrierattr_t
>   [BAR] Used to define a barrier attributes object.
> pthread_cond_t
>   [THR] Used for condition variables.
> pthread_condattr_t
>   [THR] Used to identify a condition attribute object.
> pthread_key_t
>   [THR] Used for thread-specific data keys.
> pthread_mutex_t
>   [THR] Used for mutexes.
> pthread_mutexattr_t
>   [THR] Used to identify a mutex attribute object.
> pthread_once_t
>   [THR] Used for dynamic package initialization.
> pthread_rwlock_t
>   [THR] Used for read-write locks.
> pthread_rwlockattr_t
>   [THR] Used for read-write lock attributes.
> pthread_spinlock_t
>   [SPI] Used to identify a spin lock.
> pthread_t
>   [THR] 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
>   [XSI] Used for time in microseconds.
> time_t
>   Used for time in seconds.
> timer_t
>   [TMR] Used for timer ID returned by timer_create().
> trace_attr_t
>   [TRC] Used to identify a trace stream attributes object.
> trace_event_id_t
>   [TRC] Used to identify a trace event type.
> trace_event_set_t
>   [TRC TEF] Used to identify a trace event type set.
> trace_id_t
>   [TRC] Used to identify a trace stream.
> uid_t
>   Used for user IDs.
> useconds_t
>   [XSI] Used for time in microseconds.

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

> [XSI]
> key_t
> [THR]
> pthread_attr_t
> [BAR]
> pthread_barrier_t
> pthread_barrierattr_t
> [THR]
> pthread_cond_t
> pthread_condattr_t
> pthread_key_t
> pthread_mutex_t
> pthread_mutexattr_t
> pthread_once_t
> pthread_rwlock_t
> pthread_rwlockattr_t
> [SPI]
> pthread_spinlock_t
> [THR]
> pthread_t
> [TRC]
> trace_attr_t
> trace_event_id_t
> [TRC TEF]
> trace_event_set_t
> [TRC]
> 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.

> - [XSI] 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}]. [XSI] 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 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, 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 following types:

> [THR]
> pthread_attr_t
> [BAR]
> pthread_barrier_t
> pthread_barrierattr_t
> [THR]
> pthread_cond_t
> pthread_condattr_t
> pthread_mutex_t
> pthread_mutexattr_t
> pthread_rwlock_t
> pthread_rwlockattr_t
> [SPI]
> pthread_spinlock_t
> [TRC]
> trace_attr_t

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <time.h>, the System Interfaces volume of IEEE Std 1003.1-2001, confstr(), the Shell and Utilities volume of IEEE Std 1003.1-2001, 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.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]