bonjour à tous;
je voudrais savoir s'il est possible de faire appel à un script dans un praogramme C..si c'est le cas, quelle est la syntaxe à utiliser s'il vous plait?
merci.
bonjour à tous;
je voudrais savoir s'il est possible de faire appel à un script dans un praogramme C..si c'est le cas, quelle est la syntaxe à utiliser s'il vous plait?
merci.
la méthode existe (exec je crois) mais c'est une solution à proscrire car le moindre problème de nommage ou de droits sur le chemin vers le script ou le script et le programme ne marchera plus !
bien sur tu peux te baser sur un fichier plat de configuration pour charger le chemin et le nom du script dans des variables lors de l’exécution mais il faut faire tout un tas de contrôles d'erreur avant, pendant et après l'exécution du script....
c'est un peu complexe vu que tu débutes.
une façon plus propre de faire :
écrire un script qui extrait, et met en forme les données à traiter, qui appelle le programme C, qui traite les cas de sortie.
néanmoins dans 99% des cas cette structure est elle même naze car ce qui est fait par le script avant et après le programme est souvent faisable sans trop de difficultés en C.
pour invoquer une command system via un programme C faut passer par le exec.
man exec pour les differentes versions possibles.
par exemple execv("/bin/mkdir","/bin/mkdir","/tmp/toto")
Bonjour,
Attention : exécuter une commande externe rend forcement ton programme non portable, même si ton code est standard : il ne pourra s'exécuter que sur un unique type d'OS et/ou de plateforme (selon le script que tu appelles).
Par ailleurs, comme le souligne frp31, il vaut mieux éviter ce genre de manipulations, et préférer utiliser les fonctions de l'API de l'OS pour effectuer les actions du script.
Salut.
Tu as aussi l'instruction system() en C qui exécute une commande de l'OS
Exemple :
Mais comme dit précédemment, ton code ne sera plus portable ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # include <stdlib.h> system ("./chemin_script/nom_script");
Cordialement,
Idriss
merci énormément à tous pour vos réponses;
elles ont été d'une tres grande aide..
merci encore.
Partager