Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2594 connectés 

 


Dernière réponse
Sujet : [C/C++/UNIX] Comment détecter qu'une instance d'un pgm est déjà lancé
robripper Bon, j'ai une petite solution ici, c peut être pas trop trop élégant mais ça fonctionne  :heink:  :D  
 
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
 
static char pgm_name[256];
 
static void sig_int(int signo)
{
  char cmd[255];
  sprintf(cmd, "chmod +x %s", pgm_name);
  system(cmd);
 
  exit(0);
}
 
main(int argc, char *argv[])
{
  char cmd[255];
  strcpy(pgm_name, argv[0]);
  sprintf(cmd, "chmod -x %s", pgm_name);
  system(cmd);
 
  signal(SIGINT, sig_int);
 
  while(1)
  {
    printf("%s toujours vivant!\n", argv[0]);
    sleep(1);
  }
}

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
robripper Bon, j'ai une petite solution ici, c peut être pas trop trop élégant mais ça fonctionne  :heink:  :D  
 
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
 
static char pgm_name[256];
 
static void sig_int(int signo)
{
  char cmd[255];
  sprintf(cmd, "chmod +x %s", pgm_name);
  system(cmd);
 
  exit(0);
}
 
main(int argc, char *argv[])
{
  char cmd[255];
  strcpy(pgm_name, argv[0]);
  sprintf(cmd, "chmod -x %s", pgm_name);
  system(cmd);
 
  signal(SIGINT, sig_int);
 
  while(1)
  {
    printf("%s toujours vivant!\n", argv[0]);
    sleep(1);
  }
}
robripper Merci, mais j'ai besoin de ça en C...  :( :-((
Pour le shell j'avais trouvé  :p  ;)
ethernal je sais pas si ça peut t'aider :
 
en bash :  
status "path/pgm" > /dev/null
ERR=$?
if [ "$ERR" != 0 ]; then
 echo "is not running"
else
 echo "is running"
fi
 
sinon en shell
ps aux | grep pgm | grep -v "grep"
robripper ouais sorry, mais n'oublie jamais que je suis un "Unix guy" maintenant ;-)
antp ha sous unix ? dans le mail que j'ai reçu t'avais pas précisé :o
robripper Ouais, qqun pourrait me dire comment on peut faire ceci en C sous unix :
J'ai lancé le prog toto et il tourne, je veux relancer une instance de ce même programme mais toto (le deuxième) doit me répondre : "mais je suis déjà lancé mon vieux !".
Enfin vous voyez quoi ...
 
Merci Merci Merci
@+

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)