Executer en programe externe en c

Bonjour,est ce qu'on peut executer un programe externe en c?
Configuration: Linux Suse
Firefox 2.0.0.6

6 réponses

  1. man exec !

    http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/exec.3.html
    0
    1. Plus précisément si tu veux le lancer en parallèle, fork() pour créer un processus fils suivi de exec() pour lancer ton programme externe.
      0
      1. c'est quoi un fork et comment on l'utilise?
        0
        1. un fork est une fonction qui premet de creer un processus fils a celui qui est en cour et tu l'utilise comme ceci

          pid = fork();
          /* En cas de reussite du fork, le pere et le fils poursuivent leur
          execution a partir d'ici. La valeur de pid permet de distinguer
          le pere du fils.
          */

          switch(pid) {

          case -1: /* erreur dans fork() */
          fprintf(stderr,"error %d in fork: %s\n",errno,sys_errlist[errno]);
          exit(errno);

          case 0: /* on est dans le fils */

          break;

          default: /* on est dans le pere */

          }
          }
          0
          1. L'intérêt d'utiliser un fork() avant de lancer la fonction exec() c'est que cette dernière va effacer ENTIEREMENT l'ensemble du code qui la suit... Ainsi tu peux faire :
            pid = fork()
            if(pid == 0){
                // On est dans le processus fils
                exec(/*les différents arguments, jette un coup d'oeil dans le man ;) */);
            
                // Le code qui suit ne sera jamais executé sauf si il y a une erreur au moment du lancement de la fonction exec
                // L'empechant de s'exécuter
                fprintf(stderr, "Erreur lors de le lancement de la fonction exec()");
                perror("exec");
            } else {
                // Ici, on est dans le processus père
            }
            
            0