sys/types.h - data types
The <sys/types.h> header includes definitions for at least the following types:
- Used for file block counts
- Used for block sizes
- Used for system times in clock ticks or CLOCKS_PER_SEC (see <time.h>).
- Used for clock ID type in the clock and timer functions.
- Used for device IDs.
- Used for file system block counts
- Used for file system file counts
- Used for group IDs.
- Used as a general identifier; can be used to contain at least a pid_t, uid_t or a gid_t.
- Used for file serial numbers.
- Used for interprocess communication.
- Used for some file attributes.
- Used for link counts.
- Used for file sizes.
- Used for process IDs and process group IDs.
- Used to identify a thread attribute object.
- Used for condition variables.
- Used to identify a condition attribute object.
- Used for thread-specific data keys.
- Used for mutexes.
- Used to identify a mutex attribute object.
- Used for dynamic package initialisation.
- Used for read-write locks.
- Used for read-write lock attributes.
- Used to identify a thread.
- Used for sizes of objects.
- Used for a count of bytes or an error indication.
- Used for time in microseconds
- Used for time in seconds.
- Used for timer ID returned by timer_create().
- Used for user IDs.
- Used for time in microseconds.
All of the types are defined as arithmetic types of an appropriate length, with the following exceptions: key_t, pthread_attr_t, pthread_cond_t, pthread_condattr_t, pthread_key_t, pthread_mutex_t, pthread_mutexattr_t, pthread_once_t, pthread_rwlock_t and pthread_rwlockattr_t. Additionally, blkcnt_t and off_t are extended signed integral types, fsblkcnt_t, fsfilcnt_t and ino_t are defined as extended unsigned integral types, size_t is an unsigned integral type, and blksize_t, pid_t and ssize_t are signed integral types. The type ssize_t is capable of storing values at least in the range [-1, SSIZE_MAX]. The type useconds_t is an unsigned integral type capable of storing values at least in the range [0, 1,000,000]. The type suseconds_t is a signed integral type capable of storing values at least in the range [-1, 1,000,000].
There are no defined comparison or assignment operators for the types pthread_attr_t, pthread_cond_t, pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t, pthread_rwlock_t and pthread_rwlockattr_t.