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

Rapport mondial 2025 sur la réponse à incident
Dans ce nouveau rapport, les experts de Palo Alto Networks, Unit 42 livrent la synthèse des attaques ayant le plus impacté l'activité des entreprises au niveau mondial. Quel est visage actuel de la réponse aux incidents ? Quelles sont les tendances majeures qui redessinent le champ des menaces ? Quels sont les défis auxquels doivent faire face les entreprises ? Découvrez les top priorités des équipes de sécurité en 2025.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les risques liés à l’essor fulgurant de l’IA générative
- Pourquoi est-il temps de repenser la gestion des vulnérabilités ?
- Reporting RSE : un levier d’innovation !
- De la 5G à la 6G : la France se positionne pour dominer les réseaux du futur
- Datanexions, acteur clé de la transformation numérique data-centric
