environ(5)                                                       environ(5)


environ - user environment


An array of strings called the environment is made available by exec(2) when a process begins. By convention, these strings have the form name=value. The following names are used by various commands (listed in alphabetical order): HOME Name of the user's login directory, set by login(1) from the password file (see passwd(4)). LANG Identifies the user's requirements for native language, local customs and coded character set, if the environment variables LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, and LC_TIME are unset or null. The format of LANG is: LANG=language[_territory][.codeset] The valid values for LANG are supported locales. (see lang(5)). Native Language Support (NLS) is initiated at run-time by calling setlocale(3C). The following call to setlocale binds the execution of a program to the user's language requirements: setlocale(LC_ALL,""); This setlocale call initializes the program locale from the environment variables associated with setlocale. LANG provides the necessary defaults if any of the category- specific environment variables are not set or set to the empty string. The LANG environment variable can have a maximum length of SL_NAME_SIZE bytes (see header file ). LANGOPTS Defines language options for mode and data order in the form: LANGOPTS=[mode][_order] LANGOPTS values are given in English as an ASCII character string. mode describes the mode of a file where l (ell) represents Latin mode and n represents non-Latin mode. Non-Latin mode is assumed for values other than l and n. order describes the data order of a file where k is keyboard order and s is screen order. Hewlett-Packard Company - 1 - HP-UX Release 10.20: July 1996 environ(5) environ(5) LC_ALL Determines the values for all locale categories. The value of LC_ALL has precedence over any of the other environment variables LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, and LANG . LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, and LC_TIME determines the user's requirements for language, territory, and codeset with respect to character collation, character classification and conversion, output messages, currency symbol and monetary value format, numeric data presentation, and time formats, respectively. If LC_ALL and any of these are not defined in the environment, LANG provides the defaults. Syntax for the environment variables LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, and LC_TIME is: language[_territory][.codeset][@modifier] The language field conforms with ISO 639 standard for language names and the territory field conforms with the ISO 3166 territory names. For a list of the locale names, see lang(5). The @modifier field allows the user to select between more than one value of a category within the same language definition. HP-UX does not currently provide locales with modifiers. The values of the locale categories are determined by a precedence order; the first condition met below determines the value: 1. If the LC_ALL environment variable is defined and is not null, the value of LC_ALL is used. 2. If the LC_* environment variable (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) is defined and is not null, the value of the environment variable is used to initialize the category that corresponds to the environment variable. 3. If the LANG environment variable is defined and is not null, the value of the LANG environment variable is used. 4. If the LANG environment variable is not set or is set to the empty string, the POSIX/C default locale is used. (see lang(5)) LC_COLLATE Determines the locale category for character collation. It determines collation information for regular Hewlett-Packard Company - 2 - HP-UX Release 10.20: July 1996 environ(5) environ(5) expressions and sorting, including equivalence classes and multi-character collating elements, in various utilities and strcoll(3C) and strxfrm(3C). LC_CTYPE Determines the locale category for character classification (such as alphabetic, digit, upper-case. See isalpha(3C), isdigit(3C), and isupper(3C)), character conversion. (see toupper(3C), tolower(3C)), and the interpretation of text as single-byte or multi-byte characters, LC_MESSAGES Determines the locale category for processing affirmative and negative responses and the language and cultural conventions in which diagnostic and informative messages should be written. It may also affect the behavior of catopen(3C) in determining the message catalog to open. LC_MONETARY Determines the locale category for monetary-related numeric formatting information. LC_NUMERIC Determines the locale category for numeric formatting information (such as the thousands separator and the radix character) in various utilities as well as the formatted I/O operations in printf(3S) and scanf(3S) and the string conversion functions in strtod(3C). LC_TIME Determines the locale category for date and time formatting information. It affects the behavior of time functions in strftime(3C). MANPATH Contains a colon-separated list of directory prefixes to be searched by man(1) for manual entries. Upon logging in, /etc/profile (or /etc/csh.login) sets MANPATH=/usr/share/man:/usr/contrib/man:usr/local/man. MANPATH uses the same syntax as the PATH environment variable, with the addition of recognizing the specifiers %L, %l, %t, and %c as used in the NLSPATH environment variable. See NLSPATH below for a description of these specifiers. This provides a way to specify paths to locale-specific manual entries. It is assumed that each of the prefixes given in MANPATH contain subdirectories of the form man*, man*.Z, cat* and cat*.Z. (see man(1), catman(1M), and fixman(1M)). NLSPATH Contains a sequence of pseudo-pathnames used by catopen(3C) when attempting to locate message catalogs. Each pseudo-pathname contains a name template consisting of an optional path prefix, one or more substitution field descriptors, a file name and an optional file name suffix. Hewlett-Packard Company - 3 - HP-UX Release 10.20: July 1996 environ(5) environ(5) For example: NLSPATH="/system/nlslib/%N.cat" defines that catopen(3C) should look for all message catalogs in the directory /system/nlslib , where the catalog name should be constructed from the name parameter passed to catopen (3C) (%N) with the suffix .cat. Field descriptors consist of a % followed by a single character. Field descriptors and their substitution values are: %N The value of the name parameter passed to catopen(3C). %L The value of LC_MESSAGES. %l The language element from LC_MESSAGES. %t The territory element from LC_MESSAGES. %c The codeset element from LC_MESSAGES. %% Replaced by a single %. For example, given: NLSPATH="/system/nlslib/%L/%N.cat" catopen(3C) attempts to open the file /system/nlslib/$LC_MESSAGES/name.cat as a message catalog. A null string is substituted if the specified value is not defined. Separators are not included in %t and %c substitutions. Note that a default value is not supplied for %L. If LC_MESSAGES is not set and NLSPATH had the value in the previous example, catopen(3C) would attempt to open the file /system/nlslib/name.cat as a message catalog. Path names defined in NLSPATH are separated by colons (:). A leading colon or two adjacent colons (::) is equivalent to specifying %N. For example, given: NLSPATH=":%N.cat:/nlslib/%L/%N.cat" catopen(3C) with the oflag parameter set to NL_CAT_LOCALE will attempt to open the following files in the indicated order: ./name, ./name.cat, and /nlslib/$LC_MESSAGES/name.cat. The first file successfully opened is taken as the message catalog. A default pseudo-pathname defined by the system is effectively appended to NLSPATH and used by catopen(3C) whenever a message catalog cannot be opened in any of the Hewlett-Packard Company - 4 - HP-UX Release 10.20: July 1996 environ(5) environ(5) user defined pseudo-pathnames. This system-wide default path is: /usr/lib/nls/msg/%L/%N.cat:/usr/lib/nls/%l/%t/%c/%N.cat PAGER PAGER indicates the paginator through which output from certain commands is piped. Its value must be a string specifying the complete command line of the desired paginator. Two examples are: PAGER="more -cs" PAGER="pg -c" PAGER affects several commands, including man(1) and the interactive mailers. Some of the affected commands provide alternate means of selecting a pager in case there is a conflict. See the individual manual entries for details. PATH PATH indicates the sequence of directory prefixes that sh(1), time(1), nice(1), nohup(1), and others search when looking for a file known by an incomplete path name. Prefixes are separated by colons (:). Login(1) sets PATH=:/usr/bin. TERM TERM identifies the kind of terminal for which output is to be prepared. This information is used by commands such as vi(1) and mm(1), which can exploit special capabilities of that terminal. TZ TZ sets time zone information. TZ can be set using the format: [:]STDoffset[DST[offset][,rule]] where: STD and DST Three or more bytes that designate the standard time zone (STD) and summer (or daylight-savings) time zone (DST) STD is required. If DST is not specified, summer time does not apply in this locale. Any characters other than digits, comma (,), minus (-), plus (+), or ASCII NUL are allowed. offset offset is the value that must be added to local time to arrive at Coordinated Universal Time (UTC). Offset is of the form : Hewlett-Packard Company - 5 - HP-UX Release 10.20: July 1996 environ(5) environ(5) hh[:mm[:ss]] Hour (hh) is any value from 0 through 23. The optional minutes (mm) and seconds (ss) fields are a value from 0 through 59. The hour field is required. If offset is preceded by a -, the time zone is east of the Prime Meridian. A + preceding offset indicates that the time zone is west of the Prime Meridian. The default case is west of the Prime Meridian. rule rule indicates when to change to and from summer (daylight-savings) time. The rule has the form : date/time,date/time where the first date/time specifies when to change from standard to summer time, and the second date/time specifies when to change back. The time field is expressed in current local time. The form of date should be one of the following : Jn Julian day n (1 through 365). Leap days are not counted. February 29 cannot be referenced. n The zero-based Julian day (0 through 365). Leap days are counted. February 29 can be referenced. Mm.n.d The d day (0 through 6) of week n (1 through 5) of month m (1 through 12) of the year. Week 5 refers to the last day d of month m. Week 1 is the week in which the first day of the month falls. Day 0 is Sunday. time Time has the same format as offset except that no leading sign ("-" or "+") is allowed. The default, if time is not Hewlett-Packard Company - 6 - HP-UX Release 10.20: July 1996 environ(5) environ(5) given, is 02:00:00. While the STD field and the offset field for STD must be specified, if the DST field is also provided, the system will supply default values for other fields not specified. These default values come from file /usr/lib/tztab (see tztab(4)), and, in general, reflect the various historical dates for start and end of summer time. Additional names may be placed in the environment by the export command and "name=value" arguments in sh(1), or by exec(2). It is unwise to add names that conflict with the following shell variables frequently exported by .profile files: MAIL, PS1, PS2 and IFS. The environment of a process is accessible from C by using the global variable: char **environ; which points to an array of pointers to the strings that comprise the environment. The array is terminated by a null pointer.


Some HP-UX commands and library routines do not use the LANG, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, or LANGOPTS environment variables. Some commands do not use message catalogs, so NLSPATH does not affect their behavior. See the EXTERNAL INFLUENCES section of specific commands and library routines for implementation details. NOTES Coordinated Universal Time (UTC) is equivalent to Greenwich Mean Time (GMT).


Environ was developed by AT&T and HP.


env(1), login(1), sh(1), exec(2), catopen(3C), ctime(3C), getenv(3C), setlocale(3C), profile(4), lang(5), term(5), tztab(4). STANDARDS CONFORMANCE environ: AES, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1 Hewlett-Packard Company - 7 - HP-UX Release 10.20: July 1996