par Julian Monypenny - Mis en ligne le 26/01/2005 - Publié en Mars 2004
Accéder aux répertoires et lire et écrire dans des fichiers stream en utilisant des API
dans un programme ILE RPG
Les API de l'IFS (integrated file system)
permettent de manipuler des répertoires
et des fichiers stream dans
l'IFS. Ces API font partie des API de
style Unix pour l'iSeries. Elles ont été
conçues pour des programmes C, mais
ont aussi leur place dans des programmes
ILE RPG ...Nous verrons ici
comment utiliser les API pour accéder
aux répertoires et pour lire et écrire
des fichiers stream. Mais commençons
par l'examen de quelques concepts C
qui sous-tendent les API.
Les API de l’IFS

Pour utiliser un objet (répertoires et
fichiers stream) dans l’IFS, il faut
d’abord ouvrir l’objet. Cela fait, vous
recevrez un handle associé à l’objet. Le
handle identifie auprès de l’API l’objet
qu’elle devra manipuler. Quand on a
fini d’utiliser un objet, on le ferme. Le
processus ressemble à ceci :
handle = open( name ); read( handle ); close( handle );
Les variables caractères d’entrée
sont passées comme des pointeurs
vers les chaînes C. Une chaîne C est terminée
par null, c’est-à -dire qu’elle finit
par un ’00’ hexadécimal. Sur le prototype
de procédure, on définit un paramètre
avec les options( *string ) pour
passer une variable caractère comme
une valeur terminée par null. Donc, le
code open se présente maintenant
ainsi :
handle = open( %trim( name ) );
Les API renvoient normalement un
entier ou un pointeur ; un entier
négatif ou un pointeur null signale une
erreur. Toutes les autres valeurs de
renvoi sont passées comme des
paramètres de sortie.
Si une erreur survient, on peut utiliser
la fonction _errno pour renvoyer
une valeur entière qui l’identifie. On
définit les numéros d’erreurs dans le
membre ERRNO du fichier source SYS
dans la bibliothèque QSYSINC.
Les API C réduisent parfois le nombre de paramètres
d’entrée en autorisant plusieurs valeurs dans un paramètre
individuel. Pour cela, on ajoute des valeurs uniques. Si une
valeur 10 identifie une option et une valeur 100 en identifie
une autre, la valeur 110 identifiera les deux :
function( 10 + 100 );
Voilà pour les principes de base. Deux membres copy
fournissent un cadre pour utiliser certaines des API IFS les
plus courantes. Le membre STDTYPH définit les types standard
à utiliser dans un quelconque programme. Le membre
STMIOH définit les types de données, les constantes et les
prototypes pour les API. (Pour télécharger les deux membres
copy, aller sur www.itpro.fr Club
Abonnés.) Les définitions dans STMIOH
sont plutôt succinctes. Nous allons
donc les approfondir pour voir
comment les utiliser pour afficher un
répertoire et lire et écrire des fichiers
stream. Vous pouvez examiner en détail
les membres copy après les avoir
vus à l’oeuvre.
Téléchargez cette ressource

SMART DSI – N°36
La Revue SMART DSI, analyses et dossiers pour tous les acteurs de la transformation numérique de l'entreprise, met sa nouvelle édition en accès sur demande, gagnez en compétences et expertise IT Professionnelle, découvrez les dossiers experts.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- L’Europe, un leader mondial de l’IA
- L’Intelligence Artificielle, le nouveau copilote du CRM : une révolution incontournable
- Optimiser la gestion de la relation client dans le secteur des sciences de la vie
- 2025, un « âge de raison » pour l’écosystème de la technologie ?
- 59 % des entreprises françaises victimes de ransomwares ont stoppé leurs opérations !
