Fonction popen et system

Freedon_Nadd Messages postés 2 Statut Membre -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je recherche des fonctions C sous unix qui font les meme chose que popen et system, si quelqu'un connait comment créer un fonction semblable a popen ou system, je suis ouvert a des suggestions.

Merci de votre aide

1 réponse

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Si tu ne veux pas utiliser popen ou system tu as aussi execve()
    http://www.hmug.org/man/2/execve.php
    0
    1. Freedon_Nadd Messages postés 2 Statut Membre
       
      Merci de ta réponse, mais je comprends pas comment l'utliser, j'ai essayer de comprendre l'aide dans le lien que tu m'as envoyer, mais je comprends pas plus. Alors j'aimerais bien que tu m'aide. Ce que je veux faire et très simple. Je voudrais passer la commande "ls -l" a une fonction et celle-ci soit exécuter et bien sur sans utiliser popen ou system, qui me faciliterai bien la tache.

      Merci d'avance
      Freedon_Nadd
      0
    2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Comme ceci:
      #include <unistd.h>
      int main()
      {
      	/* Déclarer un tableau de pointeurs char
                 Sachant que tu as n arguments, la longueur de ton tableau
                 doit être de n+2:
                 _ Premier argument: le nom du programme
                 _ ......
                 _ Dernier argument: doit être NULL
      
                 Exemple pour faire ls -l /home 
              */
      
              char *args[4]={"ls","-l","/home",NULL};
      	const char *path="/bin/ls";
              execve(path,args,NULL); //Je laisse env à NULL....
      	return 0;
      }
      0