Fonction popen et system

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. Modérateur
    Salut,

    Si tu ne veux pas utiliser popen ou system tu as aussi execve()
    http://www.hmug.org/man/2/execve.php
    1. 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
    2. Modérateur
      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;
      }