svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
types(3head)
types.h(3HEAD) Headers types.h(3HEAD)
NAME
types.h, types - primitive system data types
SYNOPSIS
#include <sys/types.h>
DESCRIPTION
The following data types are always defined by <sys/types.h>:
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
typedef char * caddr_t;
typedef long clock_t;
typedef short cnt_t;
typedef long daddr_t;
typedef ulong_t dev_t;
typedef unsigned int gid_t;
typedef short index_t;
typedef int key_t;
typedef struct { long val[]; } label_t;
typedef unsigned int lock_t;
typedef short sysid_t;
typedef long time_t;
typedef unsigned int uid_t;
typedef unsigned char use_t;
These data types are defined in <sys/types.h> for historical compati‐
bility, but they are deprecated in favor of the types listed above with
_t suffixes:
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
32-bit Software
The data types listed below are defined in <sys/types.h> when compiling
in 32-bit mode (-m32).
typedef long id_t;
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef ulong_t mode_t;
typedef ulong_t nlink_t;
typedef long pid_t;
typedef unsigned int size_t;
typedef int ssize_t;
typedef long suseconds_t;
The data types listed below are defined in <sys/types.h> when compiling
in 32-bit mode (-m32) and not compiling for large file support as de‐
fined in lfcompile(7).
typedef ulong_t blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;
typedef ulong_t ino_t;
typedef long off_t;
The data types listed below are defined in <sys/types.h> when compiling
in 32-bit mode (-m32) and compiling with large file support enabled as
defined in lfcompile(7).
typedef u_longlong_t blkcnt_t;
typedef u_longlong_t fsblkcnt_t;
typedef u_longlong_t fsfilcnt_t;
typedef u_longlong_t ino_t;
typedef longlong_t off_t;
64-bit Software
The data types listed below are defined in <sys/types.h> when compiling
in 64-bit mode (-m64).
typedef ulong_t blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;
typedef int id_t;
typedef ulong_t ino_t;
typedef uint_t major_t;
typedef uint_t minor_t;
typedef uint_t mode_t;
typedef uint_t nlink_t;
typedef long off_t;
typedef int pid_t;
typedef ulong_t size_t;
typedef long ssize_t;
Preprocessor Symbols
For 32-bit programs, pointers and the C data types int and long are all
32-bit quantities. For 64-bit programs, pointers and the C data type
long are defined as 64-bit quantities.
The preprocessor symbol _ILP32, made visible by the inclusion of
<sys/types.h>, can be used with the preprocessor #ifdef construct to
define sections of code that will be compiled only as part of a 32-bit
version of a given C program.
The preprocessor symbol _LP64 can be used in the same way to define
sections of code that will be compiled only as part of a 64-bit version
of a given C program. See EXAMPLES.
This header incorporates definitions of other preprocessor symbols that
can be useful when keeping code portable between different instruction
set architectures.
_LITTLE_ENDIAN The natural byte order of the processor. A
_BIG_ENDIAN pointer to an int points to the least/most
significant byte of that int.
_STACK_GROWS_UPWARD The processor specific direction of stack
_STACK_GROWS_DOWNWARD growth. A push onto the stack increases/de‐
creases the stack pointer, so it stores data
at successively higher/lower addresses.
_CHAR_IS_UNSIGNED The C Compiler implements objects of type
_CHAR_IS_SIGNED char as unsigned or signed respectively.
This is really an implementation choice of
the compiler, but it is specified in the ABI
and tends to be uniform across compilers for
an instruction set architecture.
_CHAR_ALIGNMENT The ABI defines alignment requirements of
_SHORT_ALIGNMENT each of the primitive object types. Some, if
_INT_ALIGNMENT not all, might be hardware requirements as
_LONG_ALIGNMENT well. The values are expressed in bytes.
_LONG_LONG_ALIGNMENT
_DOUBLE_ALIGNMENT
_LONG_DOUBLE_ALIGNMENT
_POINTER_ALIGNMENT
_FLOAT_ALIGNMENT
_MAX_ALIGNMENT The most stringent alignment requirement as
specified by the ABI. Equal to the maximum
of all the above _XXX_ALIGNMENT values.
_LONG_LONG_ALIGNMENT_32 The 32-bit ABI supported by a 64-bit kernel
may have different alignment requirements
for primitive object types. The value of
this identifier is expressed in bytes.
USAGE
The daddr_t type is used for disk addresses except in an inode on disk.
Times are encoded in seconds since 00:00:00 UTC, January 1, 1970. The
major and minor parts of a device code specify kind and unit number of
a device and are installation-dependent. Offsets are measured in bytes
from the beginning of a file.
The label_t[] types are used to save the processor state while another
process is running.
EXAMPLES
Example 1 Use of preprocessor symbol _LP64.
In the following example, the preprocessor symbol _LP64 defines sec‐
tions of code that will be compiled only as part of a 64-bit version of
the given C program.
#include <sys/types.h>
...
#ifdef _LP64
printf("The data model is LP64 in this environment\n");
#else
#ifdef _ILP32
printf("The data model is ILP32 in this environment\n");
#else
#error "Unknown data model!"
#endif
#endif
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted
SEE ALSO
inttypes.h(3HEAD), stdint.h(3HEAD), types32.h(3HEAD), attributes(7),
lfcompile(7), standards(7)
Oracle Solaris 11.4 30 Aug 2024 types.h(3HEAD)