All of the data types used by various functions are defined by the implementation. The following table describes some of these types. Other types referenced in the description of a function, not mentioned here, can be found in the appropriate header for that function.
| Defined Type | Description | 
|---|---|
| cc_t | Type used for terminal special characters. | 
| clock_t | Integer or real-floating type used for processor times, as defined in the ISO C standard. | 
| clockid_t | Used for clock ID type in some timer functions. | 
| dev_t | Arithmetic type used for device numbers. | 
| DIR | Type representing a directory stream. | 
| div_t | Structure type returned by the div() function. | 
| FILE | Structure containing information about a file. | 
| glob_t | Structure type used in pathname pattern matching. | 
| fpos_t | Type containing all information needed to specify uniquely every position within a file. | 
| gid_t | Integer type used for group IDs. | 
| iconv_t | Type used for conversion descriptors. | 
| id_t | Integer type used as a general identifier; can be used to contain at least the largest of a pid_t, uid_t, or gid_t. | 
| ino_t | Unsigned integer type used for file serial numbers. | 
| key_t | Arithmetic type used for XSI interprocess communication. | 
| ldiv_t | Structure type returned by the ldiv() function. | 
| mode_t | Integer type used for file attributes. | 
| mqd_t | Used for message queue descriptors. | 
| nfds_t | Integer type used for the number of file descriptors. | 
| nlink_t | Integer type used for link counts. | 
| off_t | Signed integer type used for file sizes. | 
| pid_t | Signed integer type used for process and process group IDs. | 
| pthread_attr_t | Used to identify a thread attribute 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_t | Used to identify a thread. | 
| ptrdiff_t | Signed integer type of the result of subtracting two pointers. | 
| regex_t | Structure type used in regular expression matching. | 
| regmatch_t | Structure type used in regular expression matching. | 
| rlim_t | Unsigned integer type used for limit values, to which objects of type int and off_t can be cast without loss of value. | 
| sem_t | Type used in performing semaphore operations. | 
| sig_atomic_t | Integer type of an object that can be accessed as an atomic entity, even in the presence of asynchronous interrupts. | 
| sigset_t | Integer or structure type of an object used to represent sets of signals. | 
| size_t | Unsigned integer type used for size of objects. | 
| speed_t | Type used for terminal baud rates. | 
| ssize_t | Signed integer type used for a count of bytes or an error indication. | 
| suseconds_t | Signed integer type used for time in microseconds. | 
| tcflag_t | Type used for terminal modes. | 
| time_t | Integer or real-floating type used for time in seconds, as defined in the ISO C standard. | 
| timer_t | Used for timer ID returned by the timer_create() function. | 
| uid_t | Integer type used for user IDs. | 
| useconds_t | Unsigned integer type used for time in microseconds. | 
| va_list | Type used for traversing variable argument lists. | 
| wchar_t | Integer type whose range of values can represent distinct codes for all members of the largest extended character set specified by the supported locales | 
| wctype_t | Scalar type which represents a character class descriptor. | 
| wint_t | Integer type capable of storing any valid value of wchar_t or WEOF. | 
| wordexp_t | Structure type used in word expansion. |