CHDIR |
Change le répertoire |
|---|---|
Perl |
Syntaxe
| chdir répertoire |
Paramètres
| Nom | Description |
|---|---|
| répertoire | Ce paramètre permet d'indiquer le nom du répertoire de travail. |
Retour
| Valeur | Description |
|---|---|
| 1 (vrai) | Cette valeur permet d'indiquer que l'opération s'est correctement passé. |
| 0 (faux) | Cette valeur permet d'indiquer qu'une erreur est survenu. |
Description
Cette fonction permet de changer de répertoire de travail.
Remarques
- Fonction essentielle pour la navigation dans le système de fichiers : chdir permet à un script Perl de changer dynamiquement de répertoire courant, ce qui est très utile lorsqu'on souhaite accéder à des fichiers ou exécuter des commandes dans des emplacements spécifiques du système de fichiers, sans avoir à spécifier des chemins absolus à chaque fois.
- Retour de succès à tester systématiquement : Comme beaucoup de fonctions système, chdir retourne 1 en cas de succès et 0 en cas d'échec. Il est donc vivement recommandé de tester sa valeur de retour, et en cas d'erreur, de consulter la variable spéciale $! pour obtenir un message d'erreur système expliquant la cause (répertoire inexistant, permissions insuffisantes,...).
- Utilisation typique avant des opérations sur fichiers : On utilise fréquemment chdir pour se positionner dans un répertoire spécifique avant de lire ou écrire des fichiers. Cela permet de simplifier les chemins dans le reste du code et de regrouper les opérations dans un contexte logique bien défini.
- Le chemin peut être absolu ou relatif : Le paramètre passé à chdir peut être un chemin absolu (/home/user/docs) ou relatif (../tmp, ./data). Cela offre une grande souplesse d'utilisation, mais nécessite de bien comprendre la position courante du script au moment de l'appel, surtout lorsqu'il est lancé depuis un autre répertoire.
- Impact global sur le processus : chdir modifie le répertoire courant pour tout le reste du processus Perl, y compris pour les appels système, les ouvertures de fichiers, ou les modules se basant sur le contexte de travail. Ce changement est donc global, et il faut en tenir compte pour éviter des effets de bord inattendus.
- Peut être utilisé avec File::Spec pour plus de portabilité : Pour écrire des scripts compatibles avec différents systèmes d'exploitation, on peut combiner chdir avec des modules comme File::Spec ou Cwd pour construire des chemins de manière sûre et portable, en évitant les erreurs liées aux séparateurs (/ vs \) ou aux conventions système.
- Utile pour l'exécution de commandes externes dans un contexte précis : Lorsqu'un script Perl exécute des commandes système via system() ou backticks, il est souvent nécessaire de se positionner dans un répertoire donné avec chdir afin que les commandes accèdent aux bons fichiers ou exécutables. Cela évite de devoir construire des chemins absolus complexes.
- Utilisation combinée avec des blocs ou des fonctions anonymes : Pour limiter l'effet global de chdir, certains développeurs l'utilisent dans des blocs ou des fonctions dédiées, en enregistrant le répertoire courant d'origine (via use Cwd 'getcwd') puis en y revenant ensuite. Cela permet d'éviter que des changements de répertoire se propagent au-delà du besoin immédiat.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction sous le système d'exploitation Windows :
on obtiendra le résultat suivant si le répertoire «C:\WINDOWS» existe :
Repertoire courante = C:\WINDOWSVoir également
Langage de programmation - Perl - Référence de procédures et fonctions - POSIX::chdir
Langage de programmation - C pour Linux - Référence de procédures et fonctions - chdir
Références
La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1174
Perl/CGI-Programmation avancée Grand Livre, Edition Micro Application, Rolf D. Stoll, 2001, ISBN: 2742919082, page 211
Dernière mise à jour : Dimanche, le 18 octobre 2015