Quand un nom de chemin d’accès ne commence pas par la barre oblique, on l’appelle nom de chemin relatif. Cela signifie qu’au lieu de partir de la racine de l’IFS quand il recherche un fichier, le système commence avec votre répertoire de travail courant (CWD, current working directory) (c’est-à-dire qu’il
Répertoire courant vs nom de chemin absolu
démarre par rapport à l’endroit où vous travaillez) et il avance à partir de là.
Le CWD est le répertoire dans lequel l’utilisateur « se trouve » actuellement. C’est le même esprit que la « bibliothèque courante » que l’on peut définir dans des opérations iSeries classiques. Quand les utilisateurs se connectent, ils démarrent dans le répertoire défini dans leur profil utilisateur. Ils peuvent exécuter la commande CHDIR (Change directory) pour changer ce répertoire en quelque chose d’autre, de la même manière que des utilisateurs changent leur bibliothèque courante avec la commande CHGCURLIB (Change Current Library).
Par exemple, au lieu de spécifier un nom de chemin absolu dans l’exemple précédent, je peux changer mon répertoire courant en /QOpenSys/var. Je peux ensuite référencer le fichier en tant que test/myfile.txt. Si beaucoup d’autres fichiers auxquels je veux accéder se trouvent dans le sous-répertoire /QOpenSys/ var, ce mode de référencement des fichiers m’épargne beaucoup de frappe parce que je n’ai pas besoin de répéter cette partie du nom de chemin pour chaque objet. Je ne tape que la partie qui vient après le répertoire var.
Outre l’économie de frappe, cela allège aussi le travail de l’ordinateur ! L’iSeries met en cache le répertoire courant, donc il n’a pas besoin de réouvrir tous ceux qui le précèdent quand j’utilise les noms de chemins relatifs. Pour écrire du code qui vérifie ce qu’est le CWD, on adresse un appel à l’API getcwd (). Cette API a besoin de deux paramètres : un qui désigne une variable dans laquelle stocker le nom du répertoire et un autre qui lui indique la grandeur de la variable. Si l’API réussit, elle renvoie un pointeur vers la variable que vous avez fournie. Si elle échoue, elle renvoie la valeur spéciale *NULL.
La figure 1 démontre l’appel de l’API getcwd () à partir d’un programme RPG (vous pouvez télécharger tout le code exemple de cet article à iSeriesNetwork.com/code). Il stocke le répertoire courant dans la variable tampon et sauvegarde la valeur de renvoi provenant de l’API dans le champ p_result (A en figure 1). Comme l’API renvoie une chaîne de style C, j’aime utiliser la fonction intégrée (BIF, builtin function) %str () de RPG pour convertir le résultat en un champ VARYING. Cela facilitera son utilisation plus tard dans le programme.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les coûts cachés des merge requests générées par l’IA
- WatchGuard lance Rai, une IA agentique taillée pour les MSP
- Mythos révèle les limites d’un Zero Trust centré sur le réseau
- Faire évoluer la souveraineté des données du statut d’ambition politique à son application opérationnelle
Articles les + lus
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Avril 2026
À la une de la chaîne Tech
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Avril 2026
