Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec execv()

    21 décembre 2022 à 12:54:14

    Bonjour, j'aimerais executer une commande avec execv mais elle ne se fait pas. Pouvez-vous m'aider ? (ligne 46)
    #include<unistd.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<sys/wait.h>
    #include<string.h>
    #include <sys/signal.h>
    int premier(int nb)
    {
        int r=0;
        
        for(int i = 1 ; i <= nb ; i++ )
        {
            if(nb % i == 0)
            {
               r++;
            }         
        }
        
        if(r>2)
           return 0;
        else
           return 1;
        
    }
    
    
    void my_system(char *path, char **argv)
    {
        execv(path, argv);
    }
    
    
    void explorer(int debut, int fin){
      int etat,pid,pid2;
      pid=fork();
      if(pid==0){
        for (int i=debut; i<=fin;i++){
    
          if (premier(i)==1) {
            pid2=fork();
            fflush(stdout);
            if (pid2==0){
              char chaine[120];
              sprintf(chaine,"echo ' %d  est un nombre premier écrit par le processus system créé par %d qui est créé par %d'>>nbr_premiers.txt",i,getpid(), getppid());
              char *cmd[] = {"bash", "-c", chaine, NULL};
              my_system("bin/echo", cmd);
              sleep(2);
              exit(0);
            }
            else wait(&etat);
          }
          
        }
        exit(0);
        
      } else wait(&etat);
    
    }
    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2022 à 13:55:53

      je vois que le chemin vers echo n'est pas complet.

      mais, à quoi sert l'exécution de bash ?
      ne me dis pas que c'est seulement pour faire un affichage ! o_O

      -
      Edité par dantonq 21 décembre 2022 à 16:08:45

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

      Problème avec execv()

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown