|
Seyshell
|
Primitives utilitaires pour la manipulation, le reformatage et la résolution canonique des chemins de fichiers. More...
#include "utils.h"
Functions | |
| void | format_path (char *dest, char *src, int dest_len) |
| Formate un chemin source (src) pour s'assurer qu'il devienne un chemin absolu exploitable. | |
| int | get_name_and_parent_path_by_absolute_path (char *path, char **parent_path, char **name) |
| Extrait séparément le chemin du dossier parent et le nom d'un fichier à partir d'un chemin absolu. | |
| int | get_dirname_and_parent_path_by_absolute_path (char *dirpath, char **parent_path, char **dirname) |
| Extrait séparément le chemin du dossier parent et le nom d'un répertoire à partir d'un chemin absolu. | |
| void | canonicalize_path (char *path) |
| Canonicalise un chemin absolu en résolvant les expressions de navigation relative "." et "..". | |
Primitives utilitaires pour la manipulation, le reformatage et la résolution canonique des chemins de fichiers.
Ce fichier rassemble les fonctions de manipulation de chaînes dédiées à la gestion des chemins. Il prend en charge la conversion des chemins relatifs en chemins absolus, l'extraction des couples (Dossier parent, Cible) et l'évaluation des segments de navigation relative ("." et "..").
| void canonicalize_path | ( | char * | path | ) |
Canonicalise un chemin absolu en résolvant les expressions de navigation relative "." et "..".
Cette fonction nettoie le chemin en appliquant un algorithme de pile (Stack) :
| path | Pointeur vers la chaîne contenant le chemin à simplifier. Modifié directement en place. |
| void format_path | ( | char * | dest, |
| char * | src, | ||
| int | dest_len | ||
| ) |
Formate un chemin source (src) pour s'assurer qu'il devienne un chemin absolu exploitable.
PWD/src.| dest | Tampon de destination devant recevoir le chemin absolu formaté. |
| src | Chaîne de caractères du chemin d'origine (relatif ou absolu). |
| dest_len | Taille maximale allouée pour le tampon de destination (évite les dépassements). |
| int get_dirname_and_parent_path_by_absolute_path | ( | char * | dirpath, |
| char ** | parent_path, | ||
| char ** | dirname | ||
| ) |
Extrait séparément le chemin du dossier parent et le nom d'un répertoire à partir d'un chemin absolu.
| dirpath | Le chemin absolu du répertoire à traiter. |
| parent_path | Pointeur de sortie vers la chaîne allouée du dossier parent. |
| dirname | Pointeur de sortie vers la chaîne allouée du nom du répertoire ciblé. |
| int get_name_and_parent_path_by_absolute_path | ( | char * | path, |
| char ** | parent_path, | ||
| char ** | name | ||
| ) |
Extrait séparément le chemin du dossier parent et le nom d'un fichier à partir d'un chemin absolu.
La fonction isole le dernier segment du chemin en recherchant le dernier caractère '/'.
parent_path et name reçoivent des chaînes allouées dynamiquement par strdup(). Elles doivent être libérées par l'appelant.| path | Le chemin absolu d'origine à analyser. |
| parent_path | Pointeur de sortie qui recevra l'adresse du chemin du dossier parent alloué. |
| name | Pointeur de sortie qui recevra l'adresse du nom isolé du fichier alloué. |