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

Exécuter des commandes avec la fonction system()

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

Il est courant d’utiliser l’API QCMDEXC ou QCAPCMD pour exécuter une commande CL à partir d’un programme RPG.

Cependant, il sera souvent plus commode d’utiliser une fonction de bibliothèque runtime C appelée system() pour accomplir la même chose. La fonction system() passe une chaîne

de commandes au processeur de commandes sans qu’il soit nécessaire de passer la longueur de la chaîne de commandes – ou tout autre paramètre en la circonstance. Pour appeler la fonction system(), passez-lui simplement un pointeur vers la chaîne de commandes. La figure 11 montre le prototype suggéré (avec quelques H-specs nécessaires). Quand le moment est venu pour votre programme d’exécuter une commande, vous pouvez faire référence au prototype. La chaîne de commandes peut être une variable, un littéral, une constante nommée ou une expression. La figure 12 montre une utilisation classique.

Le code return permet de vérifier la réussite ou l’échec de la fonction system(). Il est zéro si la commande a réussi, ou 1 si elle a échoué. Si vous passez 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 code return est 1), elle définit une variable globale _EXCP_MSGID avec l’ID message CPF. Vous pouvez importer cette variable dans votre programme pour rechercher des erreurs spécifiques (figure 13).

Pour utiliser la fonction system(), vous devez faire référence au répertoire liant QC2LE lors de la compilation et/ou du lien du programme. Les exemples nomment QC2LE dans les Hspecs.

Par Bryan Meyers

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

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