Posez votre question Signaler

[C++] Inclure du shelle scripting dans C++

Hitchy - Dernière réponse le 24 févr. 2007 à 03:12
bonjour à tous,

J'ai un petit soucis....(c'est en général pour ça qu'on fait appel à vous).
J'ai un code que j'ai écrit en shell-scripting. Cependant, on me demande de l'écrire en C++ pour établir une interface graphique.
Je pense qu'il est largement faisable d'inclure du Shell (linux of coure) dans du C++, mais comment fait on ?
Auriez vous des liens (j'ai pas trouvé sur google) expliquant la compatiblité entre les variables shell et C++ ?

Pour info, mon code traite surtout du texte et quelques fichiers de conf.

Merci à tous.
Lire la suite 

[C++] Inclure du shelle scripting dans C++ »

4 réponses
Réponse
+0
moins plus
salut, Shell+CC => du jamais vu.

Tout ce que tu peu faire c'est exécuter des commandes a partir du C/CC, avec les fcts posix adéquates la famille exec (man 3 exec) et les processus. Néanmoins, avec posix tu as accés a certaines variables d'environnement que tu pe modifier ou y accéder.
Ajouter un commentaire
Réponse
+0
moins plus
Ok oK....

Bon je me suis lancé dans la traduction de mon code complet en C++.
Par contre, j'ai des commandes Shell que je dois absolument inclure dans le code C++.
Le problème est que certaines commandes contienent des variables.

Exemple : je souhiate inclure cette commande :

ifconfig eth0 inet VARIABLE netmask VARIABLE2

Comment puis je inclure cette commande et lui faire comprendre les variables C++ ?
D - 23 févr. 2007 à 15:57
./script.sh >> log.o
Ca devrai t'aider.
Les tubes ca aide mais bon pas facile a géré.
Ajouter un commentaire
Réponse
+0
moins plus
Au pire tu peux utiliser les fonctions system ou execvp. Mais c'est a éviter car ça veut dire que le programme va dépendre du shell (bash, tcsh...) et même de l'os (windows linux..) ce qui est pas très recommandé.
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/system.3.html
http://www.linux-kheops.com/doc/man/manfr/man-ascii-0.9/man3/execvp.3.txt.html

Ceci dit tu peux te débrouiller pour qu'ala compilation tu considère des sections de code "windows" et "linux" avec des #define. Exemple
extern "C"{
  #include <stdlib.h>
}

int main(){
#ifdef WINDOWS
  system("ipconfig");
#endif
#ifdef LINUX
  system("/sbin/ifconfig");
#endif
  return 0;
}

La commande execvp permet quant à elle de passer des arguments :
Exemple :
http://sardes.inrialpes.fr/~mossiere/Telecom/Systeme/minishell/td_shell.pdf


Bonne chance
Ajouter un commentaire
Ce document intitulé « [C++] Inclure du shelle scripting dans C++ » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?