Seyshell
Loading...
Searching...
No Matches
Functions
env.c File Reference

Gestionnaire des variables d'environnement pour le shell intégré du SGF. More...

#include "env.h"
Include dependency graph for env.c:

Functions

envinit_envs ()
 Initialise le tableau des variables d'environnement par défaut.
 
envget_instance ()
 Récupère l'instance unique (Singleton) du tableau des variables d'environnement.
 
int get_env_len (env *envs)
 Calcule le nombre de variables d'environnement actives dans le tableau.
 
char * get_env_value (char *key)
 Recherche et retourne la valeur d'une variable d'environnement d'après sa clé.
 
int set_env_value (char *key, char *value)
 Modifie la valeur d'une variable d'environnement existante.
 

Detailed Description

Gestionnaire des variables d'environnement pour le shell intégré du SGF.

Ce fichier implémente un registre de type dictionnaire (Clé / Valeur) sous forme de Singleton pour suivre l'état du shell (répertoire courant PWD, utilisateur, etc.).

Function Documentation

◆ get_env_len()

int get_env_len ( env envs)

Calcule le nombre de variables d'environnement actives dans le tableau.

Parcourt le tableau de structures jusqu'à rencontrer la sentinelle (clé égale à NULL).

Parameters
envsPointeur vers le tableau de variables d'environnement.
Returns
int Le nombre de variables stockées (hors sentinelle).

◆ get_env_value()

char * get_env_value ( char *  key)

Recherche et retourne la valeur d'une variable d'environnement d'après sa clé.

Parameters
keyLe nom de la variable recherchée (ex: "PWD").
Returns
char* Un pointeur vers la chaîne de caractères contenant la valeur, ou NULL si la clé n'a pas été trouvée.

◆ get_instance()

env * get_instance ( )

Récupère l'instance unique (Singleton) du tableau des variables d'environnement.

Si le tableau n'a pas encore été créé, cette fonction appelle init_envs(). Les appels suivants renverront directement la même zone mémoire.

Returns
env* Pointeur vers l'instance unique du tableau d'environnement.

◆ init_envs()

env * init_envs ( )

Initialise le tableau des variables d'environnement par défaut.

Alloue l'espace mémoire pour les variables de base ("PWD", "USER", "HOST") et ajoute une sentinelle NULL à la fin pour permettre un parcours sûr.

Returns
env* Un pointeur vers le tableau d'environnements alloué, ou NULL en cas d'échec du malloc.

◆ set_env_value()

int set_env_value ( char *  key,
char *  value 
)

Modifie la valeur d'une variable d'environnement existante.

Note
La nouvelle valeur est dupliquée dynamiquement en mémoire via strdup.
Warning
Cette fonction ne gère pas l'ajout d'une nouvelle clé si elle n'existe pas déjà.
Parameters
keyLe nom de la variable à modifier.
valueLa nouvelle chaîne de caractères à affecter.
Returns
int 1 si la modification a réussi, 0 si la clé n'existe pas dans le tableau.