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
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Fraude par identité synthétique : comment l’IA peut redonner confiance aux entreprises et à leurs clients
- VirtualBrowser protège la navigation web à la source
- Innovation et performance : le rôle clé du consulting dans la transformation numérique
- Sekoia.io : l’alternative européenne qui s’impose dans la cybersécurité
Articles les + lus
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
À la une de la chaîne Tech
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
