Aller au contenu


Photo
- - - - -

Comment executé des commandes shell en C ?


  • Veuillez vous connecter pour répondre
8 réponses à ce sujet

#1 petros

petros

    Junior Member

  • Membres
  • 4 messages

Posté 07 mars 2001 - 02:14

Alors la j'ai un problème !!

il faut que j'execute des commandes shell

en C, de facon Dynamique ( pour changer de

repertoire par exemple !!



je connait la fonction system() de stdlib.h

mais elle me permet pas d'être utilisé av une variable du type "char chaine[32];"

elle accepte uniquement les const du type "coucou" .



Merci de me sauver car c'est la seule solution que j'ai !!!
  • 0

PUBLICITÉ

    Annonces Google

#2 KewlCat

KewlCat

    Modérateur

  • Attente Validation
  • 24 812 messages

Posté 07 mars 2001 - 02:22

Bon, j'ai pas mon K&R sous la main, mais un petit coup de "man execvp" ou "man execlp" devrait te mettre sur la voie (t'as tout un paquet de "exec..." avec/sans l'environnement, etc...).



Have fun !



=^.^=
  • 0

#3 petros

petros

    Junior Member

  • Membres
  • 4 messages

Posté 09 mars 2001 - 03:49

Oui, mais ce ne sont pas des commandes shell?

moi je recherche une lib, ou une fonction std

qui permet d'executer des commandes shell

sans compter sur system() de stdlib.h



Merci ?
  • 0

#4 Seiju

Seiju

    Godlike Member

  • Membres
  • 2 059 messages

Posté 09 mars 2001 - 03:54

La seule dans les library standards c'est system. Aprés tu peux avoir des fonctions qui sont spécifiques au système d'exploitation pour lequel tu compiles, mais pour ca faut que tu regardes dans la Doc descriptive de l'API concernant l'OS en question.

Déjà si tu nous disais sous quel OS tu veux les infos ca pourrait aider je pense.



Seiju
  • 0

#5 petros

petros

    Junior Member

  • Membres
  • 4 messages

Posté 09 mars 2001 - 04:16

et oui bien sur !!



désolé , je programme sous Linux

Mandrake 7.2 avec

et je compile av gcc
  • 0

#6 Seiju

Seiju

    Godlike Member

  • Membres
  • 2 059 messages

Posté 09 mars 2001 - 07:10

Donc "execv" fonctionne trés bien sous Linux.

Le proto ca doit être un truc du genre :

int execv(char *fic_exec, char**argv);



Pour plus d'infos regarde dans le man c'est fait pour ca.



Désolé j'ai pas mon Linux sous la main et je ne recup mon disque que mardi



Seiju
  • 0

#7 KewlCat

KewlCat

    Modérateur

  • Attente Validation
  • 24 812 messages

Posté 12 mars 2001 - 12:37

Oui, mais ce ne sont pas des commandes shell?






Comment ca "c'est pas une commande shell" ??

Non, c'est pas des commandes shell, c'est des fonctions C !?!

Ecoute Seiju ...
  • 0

#8 petros

petros

    Junior Member

  • Membres
  • 4 messages

Posté 12 mars 2001 - 02:40

Merci a seiju pour la solution !!!!



bravo tu a gagné mes remerciments !!!

et les merci au autre !!



A bientot !!
  • 0

#9 Seiju

Seiju

    Godlike Member

  • Membres
  • 2 059 messages

Posté 12 mars 2001 - 12:04

Petros : heuu c'est pas moi qui t'ai donné la solution mais KewlCat. Je n'ai fait que confirmer ce qu'il avait dit.

En tout cas, content que ca fonctionne vu que le proto je te l'ai donné de tête



Seiju
  • 0









Sujets similaires :     x