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

  FORUM HardWare.fr
  Programmation

  [C/C++/UNIX] Comment détecter qu'une instance d'un pgm est déjà lancé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++/UNIX] Comment détecter qu'une instance d'un pgm est déjà lancé

n°97734
robripper
Posté le 07-02-2002 à 13:07:23  profilanswer
 

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
@+


---------------
RobRipper
mood
Publicité
Posté le 07-02-2002 à 13:07:23  profilanswer
 

n°97736
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-02-2002 à 13:11:39  profilanswer
 

ha sous unix ? dans le mail que j'ai reçu t'avais pas précisé :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°97739
robripper
Posté le 07-02-2002 à 13:14:19  profilanswer
 

ouais sorry, mais n'oublie jamais que je suis un "Unix guy" maintenant ;-)


---------------
RobRipper
n°97744
ethernal
Chercheur de vérité...
Posté le 07-02-2002 à 13:22:58  profilanswer
 

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"

n°97746
robripper
Posté le 07-02-2002 à 13:26:08  profilanswer
 

Merci, mais j'ai besoin de ça en C...  :( :-((
Pour le shell j'avais trouvé  :p  ;)


---------------
RobRipper
n°97839
robripper
Posté le 07-02-2002 à 15:59:41  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C/C++/UNIX] Comment détecter qu'une instance d'un pgm est déjà lancé

 

Sujets relatifs
[C/UNIX] lire un stream ouvert a partir d'un file descriptor de socketVBA-Excel : Comment détecter une cellule vide ou non?
[Perl] sous Unix - Structures[C/unix] Librairie de video
[unix-awk] comment définir 1 caractère pas son code ascii sous unix ?[C] Comment detecter le SHIFT ?
programmation temps réel en C sous Unix[commande unix] mv...
[C unix] curse.h (getch,...) sous tru64 ??????????Examen demain Vendredi su UNIX, une petite question
Plus de sujets relatifs à : [C/C++/UNIX] Comment détecter qu'une instance d'un pgm est déjà lancé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR