Pour exécuter une commande CL à partir d'un programme RPG, on utilise couramment les API QCMDEXC ou QCAPCMD. Mais il sera parfois plus pratique d'utiliser une fonction bibliothèque runtime C, system(), pour faire la même chose. La fonction system() passe une chaîne de commandes au processeur de commandes, sans qu'il
5. Exécuter des commandes avec la fonction system()
soit nécessaire de préciser la longueur,
ou tout autre paramètre, de la chaîne
de commande.
Pour appeler la fonction system(),
il suffit de lui passer un pointeur vers la
chaîne de commandes. La figure 2 (en
A) illustre le prototype suggéré (avec
quelques H-specs nécessaires). Quand
le moment viendra pour le programme
d’exécuter une commande, on peut se
référer au prototype. La chaîne de
commandes peut être une variable, un
littéral, une constante nommée ou une
expression. Le reste du code de la figure
2 montre un usage classique.
Le Returncode permet de constater
la réussite ou l’échec de la fonction
system(). Il est de 0 si la commande
réussit et de 1 si la commande échoue.
Si l’on passe un pointeur null à une
chaîne, system() renvoie -1 et le
processeur de commandes n’est pas
appelé.
Si la fonction system() échoue
(c’est-à -dire, si le Returncode est 1),
elle établit une variable globale _EXCP
_ MSGID avec l’ID message CPF. On
peut alors importer cette variable dans
le programme pour rechercher des
erreurs spécifiques, comme l’illustre le
code mis en évidence dans la figure 3.
Pour utiliser la fonction system(), il
faut faire référence au répertoire binding
QC2LE lors de la compilation
et/ou du binding du programme. La figure
3 nomme QC2LE dans les Hspecs.
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
- Le trilemme de la souveraineté : le coût caché du cloud qui freine l’IA en Europe
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Semperis : gouverner l’identité à l’ère des agents IA
- Analyse Patch Tuesday Mars 2026
Articles les + lus
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 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
À la une de la chaîne Tech
- 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 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
