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

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

Tech - Par Renaud ROSSET - 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 cette ressource

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010