ENVIRON(5)

NOM
environ - Environnement de l'utilisateur.

SYNOPSIS
#include <unistd.h>

extern char **environ;

DESCRIPTION
L'environnement est un tableau de chaines de caracteres qui est fourni a exec(2) quand un processus demarre. Par convention ces chaines ont la forme `nom=valeur'. Des exemples classiques sont :

HOME
    Le repertoire de login d'un utilisateur, mis en place par login(1) depuis le fichier des mots de passe passwd(5).

LANG
    Le nom du lieux a utiliser pour les configurations locales, s'il n'est pas ecrase par LC_ALL ou d'autres variables d'environnement.

PATH
    Une liste de prefixes de repertoires, que sh(1) et de nombreux autres programmes utilisent pour trouver un fichier dont le chemin est incomplet. Les prefixes sont separes par des `:'. (De meme il existe CDPATH utilise par certains shells pour connaitre le repertoire destination d'une commande cd, MANPATH utilise par man(1) pour trouver les pages de manuel, etc...)

PWD Le repertoire de travail actuel, renseigne par certains shells.

SHELL
    Le nom de fichier du shell a la connexion de l'utilisateur.

TERM
    Le type de terminal utilise pour les affichages.

USER
    Le nom de l'utilisateur connecte (utilise par des programmes de style BSD).

LOGNAME
    Le nom de l'utilisateur connecte (utilise par des programmes de style Systeme V).

D'autres noms peuvent etre inscrits dans l'environnement par la commande export avec la syntaxe `name=value' sous sh(1), ou par la commande setenv avec csh(1). Des arguments peuvent aussi etre insere dans l'environnement lors d'un exec(2). Un programme C peut manipuler l'environnement en utilisant les fonctions getenv(), putenv(), setenv(), et unsetenv(). Remarquez que le comportement de nombreux programmes ou routines de bibliotheque est influence par la presence, ou par la valeur de certaines variables d'environnement. En voici quelques exemples :

Les variables LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES etc... influencent la localisation.

TMPDIR modifie le prefixe de chemin d'acces des fichiers crees par tmpnam() et consort, les repertoires temporaires de sort(1) ou d'autres programmes.

LD_LIBRARY_PATH, LD_PRELOAD et les autres variables LD_* modifient le comportement du chargeur/editeur de lien dynamique.

POSIXLY_CORRECT oblige certains programmes ou routines a respecter scrupuleusement le standard POSIX.

Le comportement de malloc() est inluence par les variables MALLOC_*.

La variable HOSTALIASES fourni le nom du fichier d'alias consulte par gethostbyname().

TZ et TZDIR gerent les fuseaux horaires.

TERMCAP donne des indications sur la maniere de traiter le terminal (ou donne le nom d'un fichier contenant ces specifications).

Etc... etc... Il est clair qu'il y a ici un risque concernant la securite. De nombreuses commandes systeme peuvent etre induites en erreur par un utilisateur qui fournirait des valeurs particulieres pour IFS ou LD_LIBRARY_PATH.

VOIR AUSSI
login(1), sh(1), bash(1), csh(1), tcsh(1), exec(2), getenv(3), putenv(3), setenv(3), unsetenv(3).