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

  FORUM HardWare.fr
  Programmation
  C

  [C] signal et exec* , association???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] signal et exec* , association???

n°1741058
ailleurs75
Posté le 03-06-2008 à 22:45:09  profilanswer
 

salut à tous.
 
J'aurais besoin pour d'un petit coup de main pour un code que je developpe en ce moment.
 
Alors voila, c'est peut-etre simple mais je trouve pas comment associer une fonction crée  
(pour commencer ce serait simplement remove) à la fermeture (ou autre) d'une application  
lancée avec un exec (ici execlp). La premiere idée qui m'est venue est d'utiliser signal.  
Seulement jvois pas trop comment connaitre le signal de "fermeture" ou autre de tel ou tel
logiciel (sachant que je compte en lancer des differents).
 
Mon but explicite ici est de supprimer un fichier temporaire apres l'avoir lu. Par exemple un film
execlp(vlc, vlc, "./monfilm.avi",NULL), et lorsque vlc est fermé, remove("./monfilm.avi" );
 
Si quelqu'un a une idée et qu'il souhaite la partager, il est le bien venu
(ceux qui pensent à m'envoyer un lien google, abstenez-vous de repondre svp :o ).
 
:jap:  

mood
Publicité
Posté le 03-06-2008 à 22:45:09  profilanswer
 

n°1741141
matafan
Posté le 04-06-2008 à 09:20:29  profilanswer
 

SIGCHLD est envoyé au parent quand un fils termine. Si tu utilises la forme "étendue" de sigaction, ton signal handler reçoit en argument un siginfo_t, qui contient entre autre le pid du process qui a envoyé le signal.

n°1741472
ailleurs75
Posté le 04-06-2008 à 17:07:27  profilanswer
 

salut.
 
merci d'avoir repondu, mais j'ai trouvé plus simple... jsuis etonné de pas y avoir pensé plus tot.
jm'etais enfermé à vouloir utiliser signal.
 
Plus simple donc (et c'est toi qui m'a mis sur la piste). je fork le execvp, et je met un waitpid sur
le pere avec le remove qui suit..
 
Pour ceux qui tomberont sur ce type de pb (au moins que le post serve à qqn): voila l'algo en pseudo code:
 
//code C
 
switch(fork()){
   case 0:  
      execvp(***,"monfichier",*);
      break;
 
   case 1:  
      waitpid(0,*****);
      remove(monfichier);
      break;
  }    
 
//code C
 
voila
:jap:  
 

n°1741632
Taz
bisounours-codeur
Posté le 05-06-2008 à 09:05:38  profilanswer
 

il te faut contrôler le retour de waitpid et éventuellement boucler.


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

  [C] signal et exec* , association???

 

Sujets relatifs
[ C ] Besoin d'aide pour afficher l'heure en temps réel[C#] IDataReader vide après un ExecuteReader()
Acquisition d'un signal RC5 sur une cart µC[C] les limites de la fonction rename !?
C# Exercice Enum[C#/SQL Server] Problème de modification de la base
[C++ et C] Lister les interfaces réseau d'un PC [resolu][C#.NET][pas si resolu] Colorer un ou plusieurs mots dans une textbox
[RESOLU]Traduire du C++ en PHP 
Plus de sujets relatifs à : [C] signal et exec* , association???


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