IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Un programme qui s'auto-execute


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Un programme qui s'auto-execute
    Bonjour,

    Je cherche à rédiger un programme qui imprime son PID, puis se lance lui-même au moyen d'une fonction "exec" (execl(), execlp(), execv(), execvp(), ...)

    Quelqu'un pourrait-il m'aider à résoudre ce problème?

    Merci par avance. 8)
    Jamal.

  2. #2
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Comme ça, là, non.
    Sur quoi bloques-tu précisement ?
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bah en fait, j'ai essayé de le faire, mais j'ai quelques petites erreurs lors de l'execution de mon programme...
    Deux erreurs reviennent:
    - bad address
    - permission denied
    Je pense que ça vient de ma façon d'utiliser execl, qui ne doit pas être très bonne...

    Merci et à bientôt! 8)
    Jamal.

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Si on avait le code ca serait bien quand meme
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Désolé, j'ai pas été vif... Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    /* Nom du fichier source: autoExec.c */
     
    #include <stdio.h>
    #include <sys/types.h>
    #include <unistd.h>
     
    #define NB_EXEC 5
     
    int main(int argc, char *argv[]) {
     
      int nbExecRest;
      pid_t pid;
     
      if(argc==1) {
        nbExecRest=NB_EXEC;
      }
      else {
        nbExecRest=atoi(argv[1]);
      }
     
      printf("le PID de ce processus est %d et il reste %d executions de ce 
    programme", getpid(), nbExecRest);
     
      if(nbExecRest != 0) {
        nbExecRest--;
        execlp("./autoExec", "./autoExec", nbExecRest, NULL);
        perror("execlp");
      }
     
      printf("fin de l execution");
      return 0;
    }
    Merci et à bientôt!
    Jamal.

  6. #6
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Points : 91
    Points
    91
    Par défaut
    les arguments de execl sont des char *, donc tu dois convertir nbExecRest en char * . Pour convertir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char s[40];
    sprintf(s, "%d", nbExecRest);
    ensuite met fflush(stdout) apres le printf pour etre sur de voir tes messages.
    enfin execlp recherche l'executable dans le PATH, pour le repertoire courant, execl("autoExec",...) suffit.
    là ça devrait macher...

    aussii, atoi() à besoin de stdlib.h

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ce qui se fait en generale c'est un fichier de script (.bat sous win et en Bash sous Linux) ! apres suffit de dire au système de lancer ce script au démarrage du gestionnaire de fenetre pis c'est bon, pas besoin d'un programme executable
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. script perl qui s'auto-execute ?
    Par Leishmaniose dans le forum Langage
    Réponses: 5
    Dernier message: 17/04/2007, 15h54
  2. Réponses: 3
    Dernier message: 28/03/2007, 21h16
  3. Trouver le programme qui s'execute toutes les 10 minutes
    Par sboffin dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 22/03/2007, 17h37
  4. executer un programme qui demande des input
    Par Pauli dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2007, 10h43
  5. programme qui s ouvre, execute et se ferme ..
    Par hijodelanoche dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2005, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo