types(3head) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3