> Tech > 5. Exécuter des commandes avec la fonction system()

5. Exécuter des commandes avec la fonction system()

Tech - Par iTPro - Publié le 24 juin 2010
email

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 gratuitement cette ressource

Endpoint Security : Guide de Mise en œuvre

Endpoint Security : Guide de Mise en œuvre

Détournement d’applications légitimes, élévation de privilèges, logiciels malveillants furtifs : comment les solutions de Endpoint Security permettent elles de faire face aux nouvelles techniques d'attaques complexes ? Découvrez, dans ce Guide Endpoint Security, les perspectives associées à leur mise en œuvre.

Tech - Par iTPro - Publié le 24 juin 2010