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
Comment lutter contre le Phishing ?
Dans un environnement cyber en constante mutation, le phishing évolue vers des attaques toujours plus sophistiquées combinant IA, automatisation et industrialisation. Une réalité complexe qui exige des mesures de sécurité avancées et repensées au-delà de l’authentification multifacteur. Découvrez les réponses technologiques préconisées par les experts Eviden et les perspectives associées à leur mise en œuvre.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Tendances des budgets des DSI en 2025
- Révolutionner la gestion du stockage à l’ère de l’IA et de la transformation numérique : vers une infrastructure agile et automatisée
- Multicloud Computing : Êtes-vous prêt pour la prochaine nouvelle vague informatique ?
- IA : les PME devraient adopter des outils NoCode appropriés
- Guide des certifications Microsoft