       
SYNOPSIS
       #include <fmtmsg.h>

DESCRIPTION
       The  <'fmtmsg'.h>  header shall define the following macros, which expand
       to constant integer expressions:

       'MM_HARD'
              Source of the condition is hardware.

       'MM_SOFT'
              Source of the condition is software.

       'MM_FIRM'
              Source of the condition is firmware.

       'MM_APPL'
              Condition detected by application.

       'MM_UTIL'
              Condition detected by utility.

       'MM_OPSYS'
              Condition detected by operating system.

       'MM_RECOVER'
              Recoverable error.

       'MM_NRECOV'
              Non-recoverable error.

       'MM_HALT'
              Error causing application to halt.

       'MM_ERROR'
              Application has encountered a non-fatal fault.

       'MM_WARNING'
              Application has detected unusual non-error condition.

       'MM_INFO'
              Informative message.

       'MM_NOSEV'
              No severity level provided for the message.

       'MM_PRINT'
              Display message on standard error.

       'MM_CONSOLE'
              Display message on system console.


       The table below indicates the null values and identifiers for  'fmtmsg'()
       arguments.   The <fmtmsg.h> header shall define the macros in the Iden-
       tifier column, which expand to  constant  expressions  that  expand  to
       expressions of the type indicated in the Type column:


                     Argument   Type     Null-Value   Identifier
                     label      char *   (char*)0     'MM_NULLLBL'
                     severity   int      0            'MM_NULLSEV'
                     class      long     0L           'MM_NULLMC'
                     text       char *   (char*)0     'MM_NULLTXT'
                     action     char *   (char*)0     'MM_NULLACT'
                     tag        char *   (char*)0     'MM_NULLTAG'

       The <fmtmsg.h> header shall also define the following macros for use as
       return values for fmtmsg():

       'MM_OK'  The function succeeded.

       'MM_NOTOK'
              The function failed completely.

       'MM_NOMSG'
              The function was unable to generate a message on standard error,
              but otherwise succeeded.

       'MM_NOCON'
              The  function was unable to generate a console message, but oth-
              erwise succeeded.


      
SYNOPSIS
       #include <fnmatch.h>

DESCRIPTION
       The <'fnmatch'.h> header shall define the following constants:

       'FNM_NOMATCH'
              The string does not match the specified pattern.

       'FNM_PATHNAME'
              Slash in string only matches slash in pattern.

       'FNM_PERIOD'
              Leading  period  in  string must be exactly matched by period in
              pattern.

       'FNM_NOESCAPE'
              Disable backslash escaping.

       'FNM_NOSYS'
              Reserved.


      
SYNOPSIS
       #include <ftw.h>

DESCRIPTION
       The  <'ftw'.h>  header  shall  define  the 'FTW' structure that includes at
       least the following members:


              int  'base'
              int  'level'

       The <ftw.h> header shall define macros for use as values of  the  third
       argument  to  the  application-supplied  function that is passed as the
       second argument to ftw() and 'nftw'():

       'FTW_F'  File.

       'FTW_D'  Directory.

       'FTW_DNR'
              Directory without read permission.

       'FTW_DP' Directory with subdirectories visited.

       'FTW_NS' Unknown type; stat() failed.

       'FTW_SL' Symbolic link.

       'FTW_SLN'
              Symbolic link that names a nonexistent file.


       The <ftw.h> header shall define macros for use as values of the  fourth
       argument to nftw():

       'FTW_PHYS'
              Physical walk, does not follow symbolic links. Otherwise, nftw()
              follows links but does not  walk  down  any  path  that  crosses
              itself.

       'FTW_MOUNT'
              The walk does not cross a mount point.

       'FTW_DEPTH'
              All subdirectories are visited before the directory itself.

       'FTW_CHDIR'
              The walk changes to each directory before reading it.


       
SYNOPSIS
       #include <glob.h>

DESCRIPTION
       The  <'glob'.h> header shall define the structures and symbolic constants
       used by the glob() function.

       The structure type 'glob_t' shall contain at least the following members:


              size_t   'gl_pathc' Count of paths matched by pattern.
              char   **'gl_pathv' Pointer to a list of matched pathnames.
              size_t   'gl_offs'  Slots to reserve at the beginning of gl_pathv.

       The following constants shall be provided as values for the flags argu-
       ment:

       'GLOB_APPEND'
              Append generated pathnames to those previously obtained.

       'GLOB_DOOFFS'
              Specify how many null  pointers  to  add  to  the  beginning  of
              gl_pathv.

       'GLOB_ERR'
              Cause glob() to return on error.

       'GLOB_MARK'
              Each  pathname  that  is  a directory that matches pattern has a
              slash appended.

       'GLOB_NOCHECK'
              If pattern does not match any pathname, then return a list  con-
              sisting of only pattern.

       'GLOB_NOESCAPE'
              Disable backslash escaping.

       'GLOB_NOSORT'
              Do not sort the pathnames returned.


       The following constants shall be defined as error return values:

       'GLOB_ABORTED'
              The  scan  was  stopped because GLOB_ERR was set or (*errfunc)()
              returned non-zero.

       'GLOB_NOMATCH'
              The  pattern  does  not  match  any   existing   pathname,   and
              GLOB_NOCHECK was not set in flags.

       'GLOB_NOSPACE'
              An attempt to allocate memory failed.

       'GLOB_NOSYS'
              Reserved.


       
SYNOPSIS
       #include <grp.h>

DESCRIPTION
       The  <'grp'.h>  header  shall  declare  the  structure  group which shall
       include the following members:


              char   *'gr_name' The name of the group.
              gid_t   'gr_gid'  Numerical group ID.
              char  **'gr_mem'  Pointer to a null-terminated array of character
                              pointers to member names.

       The 'gid_t' type shall be defined as described in <sys/types.h> .

       
SYNOPSIS
       #include <iconv.h>

DESCRIPTION
       The <'iconv'.h> header shall define the following type:

       'iconv_t'
              Identifies the conversion from one codeset to another.


       
SYNOPSIS
       #include <net/if.h>

DESCRIPTION
       The  <net/if.h>  header  shall  define  the 'if_nameindex' structure that
       includes at least the following members:


              unsigned  'if_index'  Numeric index of the interface.
              char     *'if_name'   Null-terminated name of the interface.

       The <net/if.h> header shall define the following macro for  the  length
       of  a  buffer  containing  an interface name (including the terminating
       NULL character):

       'IF_NAMESIZE'
              Interface name length.


       
SYNOPSIS
       #include <netinet/in.h>

DESCRIPTION
       The <netinet/in.h> header shall define the following types:

       'in_port_t'
              Equivalent to the type uint16_t as defined in <inttypes.h> .

       'in_addr_t'
              Equivalent to the type uint32_t as defined in <inttypes.h> .


       The  'sa_family_t' type shall be defined as described in <sys/socket.h> .

       The uint8_t and uint32_t type shall be defined as  described  in  <int-
       types.h>.  Inclusion of the <netinet/in.h> header may also make visible
       all symbols from <inttypes.h> and <sys/socket.h>.

       The <netinet/in.h> header  shall  define  the  'in_addr'  structure  that
       includes at least the following member:


              in_addr_t  's_addr'

       The  <netinet/in.h>  header shall define the 'sockaddr_in' structure that
       includes at least the following members (all in network byte order):


              sa_family_t     'sin_family'   AF_INET.
              in_port_t       'sin_port'     Port number.
              struct in_addr  'sin_addr'     IP address.

       The sockaddr_in structure is used to store addresses for  the  Internet
       address  family.  Values  of this type shall be cast by applications to
       struct sockaddr for use with socket functions.

       The <netinet/in.h> header shall define the 'in6_addr' structure that con-
       tains at least the following member:


              uint8_t 's6_addr'[16]

       This array is used to contain a 128-bit IPv6 address, stored in network
       byte order.

       The <netinet/in.h> header shall define the 'sockaddr_in6' structure  that
       includes at least the following members (all in network byte order):


              sa_family_t      'sin6_family'    AF_INET6.
              in_port_t        'sin6_port'      Port number.
              uint32_t         'sin6_flowinfo'  IPv6 traffic class and flow information.
              struct in6_addr  'sin6_addr'      IPv6 address.
              uint32_t         'sin6_scope_id'  Set of interfaces for a scope.

       The sockaddr_in6 structure shall be set to zero by an application prior
       to using it, since implementations are free to have additional,  imple-
       mentation-defined fields in sockaddr_in6.

       The  sin6_scope_id  field  is a 32-bit integer that identifies a set of
       interfaces as appropriate for the scope of the address carried  in  the
       sin6_addr  field.  For  a  link  scope sin6_addr, the application shall
       ensure that sin6_scope_id is a link index. For a site scope  sin6_addr,
       the  application  shall  ensure that sin6_scope_id is a site index. The
       mapping of sin6_scope_id to an interface or set of interfaces is imple-
       mentation-defined.

       The  <netinet/in.h>  header  shall declare the following external vari-
       able:


              const struct in6_addr 'in6addr_any'

       This variable is initialized by the system to contain the wildcard IPv6
       address.  The  <netinet/in.h>  header also defines the 'IN6ADDR_ANY_INIT'
       macro. This macro must be constant at compile time and can be  used  to
       initialize  a  variable  of  type  struct in6_addr to the IPv6 wildcard
       address.

       The <netinet/in.h> header shall declare the  following  external  vari-
       able:


              const struct in6_addr 'in6addr_loopback'

       This variable is initialized by the system to contain the loopback IPv6
       address. The  <netinet/in.h>  header  also  defines  the  'IN6ADDR_LOOPBACK_INIT'
       macro. This macro must be constant at compile time and can be
       used to initialize a variable of type struct in6_addr to the IPv6 loop-
       back address.

       The  <netinet/in.h>  header  shall  define the 'ipv6_mreq' structure that
       includes at least the following members:


              struct in6_addr  'ipv6mr_multiaddr'  IPv6 multicast address.
              unsigned         'ipv6mr_interface'  Interface index.

       The <netinet/in.h> header shall define the following macros for use  as
       values of the level argument of 'getsockopt'() and 'setsockopt'():

       'IPPROTO_IP'
              Internet protocol.

       'IPPROTO_IPV6'
              Internet Protocol Version 6.

       'IPPROTO_ICMP'
              Control message protocol.

       'IPPROTO_RAW'
              Raw IP Packets Protocol.

       'IPPROTO_TCP'
              Transmission control protocol.

       'IPPROTO_UDP'
              User datagram protocol.


       The  <netinet/in.h> header shall define the following macros for use as
       destination addresses for 'connect'(), 'sendmsg'(), and 'sendto'():

       'INADDR_ANY'
              IPv4 local host address.

       'INADDR_BROADCAST'
              IPv4 broadcast address.


       The <netinet/in.h> header shall define  the  following  macro  to  help
       applications declare buffers of the proper size to store IPv4 addresses
       in string form:

       'INET_ADDRSTRLEN'
              16. Length of the string form for IP.


       The htonl(), htons(), ntohl(), and ntohs() functions shall be available
       as  defined  in  <arpa/inet.h> . Inclusion of the <netinet/in.h> header
       may also make visible all symbols from <arpa/inet.h> .

       The <netinet/in.h> header shall define  the  following  macro  to  help
       applications declare buffers of the proper size to store IPv6 addresses
       in string form:

       'INET6_ADDRSTRLEN'
              46. Length of the string form for IPv6.


       The <netinet/in.h> header shall define the following macros, with  dis-
       tinct  integer  values, for use in the option_name argument in the get-
       sockopt() or setsockopt() functions at protocol level IPPROTO_IPV6:

       'IPV6_JOIN_GROUP'
              Join a multicast group.

       'IPV6_LEAVE_GROUP'
              Quit a multicast group.

       'IPV6_MULTICAST_HOPS'

              Multicast hop limit.

       'IPV6_MULTICAST_IF'
              Interface to use for outgoing multicast packets.

       'IPV6_MULTICAST_LOOP'

              Multicast packets are delivered back to the local application.

       'IPV6_UNICAST_HOPS'
              Unicast hop limit.

       'IPV6_V6ONLY'
              Restrict AF_INET6 socket to IPv6 communications only.


       The <netinet/in.h> header shall define the following macros  that  test
       for  special IPv6 addresses. Each macro is of type int and takes a sin-
       gle argument of type const struct in6_addr *:

       'IN6_IS_ADDR_UNSPECIFIED'

              Unspecified address.

       'IN6_IS_ADDR_LOOPBACK'

              Loopback address.

       'IN6_IS_ADDR_MULTICAST'

              Multicast address.

       'IN6_IS_ADDR_LINKLOCAL'

              Unicast link-local address.

       'IN6_IS_ADDR_SITELOCAL'

              Unicast site-local address.

       'IN6_IS_ADDR_V4MAPPED'

              IPv4 mapped address.

       'IN6_IS_ADDR_V4COMPAT'

              IPv4-compatible address.

       'IN6_IS_ADDR_MC_NODELOCAL'

              Multicast node-local address.

       'IN6_IS_ADDR_MC_LINKLOCAL'

              Multicast link-local address.

       'IN6_IS_ADDR_MC_SITELOCAL'

              Multicast site-local address.

       'IN6_IS_ADDR_MC_ORGLOCAL'

              Multicast organization-local address.

       'IN6_IS_ADDR_MC_GLOBAL'

              Multicast global address.


       
SYNOPSIS
       #include <arpa/inet.h>

DESCRIPTION
       The  in_port_t  and  in_addr_t  types  shall be defined as described in
       <netinet/in.h> .

       The in_addr structure shall be defined as described in <netinet/in.h> .

       The INET_ADDRSTRLEN    and INET6_ADDRSTRLEN  macros shall be defined as
       described in <netinet/in.h> .

       The following shall either be declared as functions, defined as macros,
       or  both.  If functions are declared, function prototypes shall be pro-
       vided.


              uint32_t htonl(uint32_t);
              uint16_t htons(uint16_t);
              uint32_t ntohl(uint32_t);
              uint16_t ntohs(uint16_t);

       The uint32_t and uint16_t types shall be defined as described in  <int-
       types.h> .

       
SYNOPSIS
       #include <inttypes.h>

DESCRIPTION
       Some  of the functionality described on this reference page extends the
       ISO C standard. Applications shall define the appropriate feature  test
       macro  (see  the System Interfaces volume of IEEE Std 1003.1-2001, Sec-
       tion 2.2, The Compilation Environment)  to  enable  the  visibility  of
       these symbols in this header.

       The <'inttypes'.h> header shall include the <stdint.h> header.

       The <inttypes.h> header shall include a definition of at least the fol-
       lowing type:

       'imaxdiv_t'
              Structure type that is the type of the  value  returned  by  the
              imaxdiv() function.


       The  following  macros  shall  be  defined. Each expands to a character
       string literal containing a conversion specifier, possibly modified  by
       a  length  modifier,  suitable  for use within the format argument of a
       formatted input/output function when converting the corresponding inte-
       ger  type.  These macros have the general form of PRI (character string
       literals for the fprintf() and fwprintf() family of functions)  or  SCN
       (character  string  literals  for  the fscanf() and fwscanf() family of
       functions), followed by the conversion specifier, followed  by  a  name
       corresponding  to  a similar type name in <stdint.h>. In these names, N
       represents the width of the type as described in <stdint.h>.  For exam-
       ple, PRIdFAST32 can be used in a format string to print the value of an
       integer of type int_fast32_t.

       The fprintf() macros for signed integers are:

                   'PRIdN'  'PRIdLEASTN'  'PRIdFASTN'  'PRIdMAX'  'PRIdPTR'
                   'PRIiN'  'PRIiLEASTN'  'PRIiFASTN'  'PRIiMAX'  'PRIiPTR'

       The fprintf() macros for unsigned integers are:

                   'PRIoN'  'PRIoLEASTN'  'PRIoFASTN'  'PRIoMAX'  'PRIoPTR'
                   'PRIuN'  'PRIuLEASTN'  'PRIuFASTN'  'PRIuMAX'  'PRIuPTR'
                   'PRIxN'  'PRIxLEASTN'  'PRIxFASTN'  'PRIxMAX'  'PRIxPTR'
                   'PRIXN'  'PRIXLEASTN'  'PRIXFASTN'  'PRIXMAX'  'PRIXPTR'

       The fscanf() macros for signed integers are:

                   'SCNdN'  'SCNdLEASTN'  'SCNdFASTN'  'SCNdMAX'  'SCNdPTR'
                   'SCNiN'  'SCNiLEASTN'  'SCNiFASTN'  'SCNiMAX'  'SCNiPTR'

       The fscanf() macros for unsigned integers are:

                   'SCNoN'  'SCNoLEASTN'  'SCNoFASTN'  'SCNoMAX'  'SCNoPTR'
                   'SCNuN'  'SCNuLEASTN'  'SCNuFASTN'  'SCNuMAX'  'SCNuPTR'
                   'SCNxN'  'SCNxLEASTN'  'SCNxFASTN'  'SCNxMAX'  'SCNxPTR'

       For each type that the implementation provides in <stdint.h>, the  cor-
       responding  'fprintf()  and  fwprintf()  macros shall be defined and the
       corresponding fscanf() and fwscanf() macros shall be defined unless the
       implementation does not have a suitable modifier for the type.

       
SYNOPSIS
       #include <sys/ipc.h>

DESCRIPTION
       The <sys/'ipc'.h> header is used by three mechanisms for XSI interprocess
       communication (IPC): messages, semaphores, and shared memory. All use a
       common  structure type, ipc_perm, to pass information used in determin-
       ing permission to perform an IPC operation.

       The 'ipc_perm' structure shall contain the following members:


              uid_t    'uid'    Owner's user ID.
              gid_t    'gid'    Owner's group ID.
              uid_t    'cuid'   Creator's user ID.
              gid_t    'cgid'   Creator's group ID.
              mode_t   'mode'   Read/write permission.

       The 'uid_t', 'gid_t', 'mode_t', and 'key_t' types shall be defined as described
       in <sys/types.h> .

       Definitions shall be provided for the following constants:

       Mode bits:

       'IPC_CREAT'
              Create entry if key does not exist.

       'IPC_EXCL'
              Fail if key exists.

       'IPC_NOWAIT'
              Error if request must wait.


       Keys:

       'IPC_PRIVATE'
              Private key.


       Control commands:

       'IPC_RMID'
              Remove identifier.

       'IPC_SET'
              Set options.

       'IPC_STAT'
              Get options.


       The  following  shall be declared as a function and may also be defined
       as a macro. A function prototype shall be provided.


              key_t  ftok(const char *, int);

       
SYNOPSIS
       #include <iso646.h>

DESCRIPTION
       The  <'iso646'.h> header shall define the following eleven macros (on the
       left) that expand to the corresponding tokens (on the right):

       and    &&

       and_eq &=

       bitand &

       bitor  |

       compl  ~

       not    !

       not_eq !=

       or     ||

       or_eq  |=

       xor    ^

       xor_eq ^=


       
SYNOPSIS
       #include <langinfo.h>

DESCRIPTION
       The  <'langinfo'.h>  header contains the constants used to identify items
       of langinfo  data  (see  nl_langinfo()).  The  type  of  the  constant,
       nl_item, shall be defined as described in <nl_types.h> .

       The  following  constants  shall be defined. The entries under Category
       indicate in which 'setlocale'() category each item is defined.

          Constant    Category    Meaning
          'CODESET'     LC_CTYPE    Codeset name.
          'D_T_FMT'     LC_TIME     String for formatting date and time.
          'D_FMT'       LC_TIME     Date format string.
          'T_FMT'       LC_TIME     Time format string.
          'T_FMT_AMPM'  LC_TIME     a.m. or p.m. time format string.
          'AM_STR'      LC_TIME     Ante-meridiem affix.
          'PM_STR'      LC_TIME     Post-meridiem affix.
          'DAY_1'       LC_TIME     Name of the first day of the week (for
                                  example, Sunday).
          'DAY_2'       LC_TIME     Name of the second day of the week (for
                                  example, Monday).
          'DAY_3'       LC_TIME     Name of the third day of the week (for
                                  example, Tuesday).
          'DAY_4'       LC_TIME     Name of the fourth day of the week
                                  (for example, Wednesday).
          'DAY_5'       LC_TIME     Name of the fifth day of the week (for
                                  example, Thursday).
          'DAY_6'       LC_TIME     Name of the sixth day of the week (for
                                  example, Friday).
          'DAY_7'       LC_TIME     Name of the seventh day of the week
                                  (for example, Saturday).
          'ABDAY_1'     LC_TIME     Abbreviated name of the first day of the
                                  week.
          'ABDAY_2'     LC_TIME     Abbreviated name of the second day of
                                  the week.
          'ABDAY_3'     LC_TIME     Abbreviated name of the third day of the
                                  week.
          'ABDAY_4'     LC_TIME     Abbreviated name of the fourth day of
                                  the week.
          'ABDAY_5'     LC_TIME     Abbreviated name of the fifth day of the
                                  week.
          'ABDAY_6'     LC_TIME     Abbreviated name of the sixth day of the
                                  week.
          'ABDAY_7'     LC_TIME     Abbreviated name of the seventh day of
                                  the week.
          'MON_1'       LC_TIME     Name of the first month of the year.
          'MON_2'       LC_TIME     Name of the second month.
          'MON_3'       LC_TIME     Name of the third month.
          'MON_4'       LC_TIME     Name of the fourth month.
          'MON_5'       LC_TIME     Name of the fifth month.
          'MON_6'       LC_TIME     Name of the sixth month.
          'MON_7'       LC_TIME     Name of the seventh month.
          'MON_8'       LC_TIME     Name of the eighth month.
          'MON_9'       LC_TIME     Name of the ninth month.
          'MON_10'      LC_TIME     Name of the tenth month.
          'MON_11'      LC_TIME     Name of the eleventh month.

          'MON_12'      LC_TIME     Name of the twelfth month.
          'ABMON_1'     LC_TIME     Abbreviated name of the first month.
          'ABMON_2'     LC_TIME     Abbreviated name of the second month.
          'ABMON_3'     LC_TIME     Abbreviated name of the third month.
          'ABMON_4'     LC_TIME     Abbreviated name of the fourth month.
          'ABMON_5'     LC_TIME     Abbreviated name of the fifth month.
          'ABMON_6'     LC_TIME     Abbreviated name of the sixth month.
          'ABMON_7'     LC_TIME     Abbreviated name of the seventh month.
          'ABMON_8'     LC_TIME     Abbreviated name of the eighth month.
          'ABMON_9'     LC_TIME     Abbreviated name of the ninth month.
          'ABMON_10'    LC_TIME     Abbreviated name of the tenth month.
          'ABMON_11'    LC_TIME     Abbreviated name of the eleventh  month.
          'ABMON_12'    LC_TIME     Abbreviated name of the twelfth month.
          'ERA'         LC_TIME     Era description segments.
          'ERA_D_FMT'   LC_TIME     Era date format string.
          'ERA_D_T_FMT' LC_TIME     Era date and time format string.
          'ERA_T_FMT'   LC_TIME     Era time format string.
          'ALT_DIGITS'  LC_TIME     Alternative symbols for digits.
          'RADIXCHAR'   LC_NUMERIC  Radix character.
          'THOUSEP'     LC_NUMERIC  Separator for thousands.
          'YESEXPR'     LC_MESSAGES Affirmative response expression.
          'NOEXPR'      LC_MESSAGES Negative response expression.
          'CRNCYSTR'    LC_MONETARY Local currency symbol, preceded by '-'
                                  if the symbol should appear before the
                                  value, '+' if the symbol should appear
                                  after the value, or '.' if the symbol
                                  should replace the radix character. If
                                  the local currency symbol is the empty
                                  string, implementations may return the
                                  empty string ( "" ).

       If the locale's values  for  p_cs_precedes  and  n_cs_precedes  do  not
       match, the value of nl_langinfo(CRNCYSTR) is unspecified.

       The  following  shall be declared as a function and may also be defined
       as a macro. A function prototype shall be provided.


              char *nl_langinfo(nl_item);

       Inclusion of the <langinfo.h> header may also make visible all  symbols
       from <nl_types.h>.

       
SYNOPSIS
       #include <libgen.h>

DESCRIPTION
