cours/C obtenir une variable d'environnement.md
oscar.plaisant@icloud.com 38fbb1938d from github to this gitea
2023-10-23 23:09:51 +02:00

1.7 KiB

alias
alias
C primitive getenv
getenv

up::C primitives système, C variable d'environnement title:: "getenv pour obtenir la valeur d'une variables d'environnement" #informatique/unix


Avec la fonction getenv

  • fonction getenv de la librairie standard
  • permet d'obtenir directement la valeur de la variable donnée en argument
  • retourne NULL si la variable n'est pas définie

signature de la fonction :

char * getenv(const char *nom_variable)

Exemple

#include<stdio.h>
#include<stdlib.h>
void main (int argc, char *argv[], char **arge) {

    char *VAR;
    if ( (VAR = getenv("PATH")) != NULL )
        fprintf(stdout, "Valeur PATH = %s", VAR);
    else
        fprintf(stderr, "VARIABLE PATH NON DEFINIE !");
}

Avec l'argument arge dans main

On utilise le tableau arge, qui est donné en argument par défaut est un tableau :

  • chaque élément est un pointeur
    • vers une chaîne de caractère de la forme :
      • nom_de_la_variable=valeur_de_la_variable
      • pour chaque

Exemple

#include<stdio.h>

int main (int argc, char *argv[], char **arge) {
    int i;
    for ( i=0; arge[i] != NULL; i++) {
        puts(arge[i]);
    }
}

Avec la variable environ

  • même tableau que arge
  • peut être défini comme une variable globale
    • ici, on le re-définit localement, pour ne pas modifier la variable globalement

Exemple

#include<stdio.h>

extern char **environ;

int main (int argc, char *argv[], char **arge) {

    extern char **environ;
    char **env;
    env = environ; /* préserve environ */
    
    while ( *env != NULL )
        puts( *env++);
}