#1 Le 04/02/2007, à 06:58
- Chaussette
"system(prog &)" Met prog en tache de fond. Mais comment l'arrêter ?
Tout est dans le titre !
Je lance une commande en tache de fond depuis un programme c, avec la fonction system();
Mais lorsque je fais 'jobs' : rien .
A par un bon gros "killall mon pogramme" rien ne l'arrête.
Et puis je voudrais pouvoir le remettre en premier plan.
Est-ce que vous n'auriez pas une petite idée la dessus !?
merci d'avance.
Dernière modification par Chaussette (Le 04/02/2007, à 07:22)
Les clowns se marient en grande pompes
Hors ligne
#2 Le 04/02/2007, à 11:05
- ePi
Re : "system(prog &)" Met prog en tache de fond. Mais comment l'arrêter ?
il faut que tu lui envoies un signal, genre SIGINT, SIGTERM. et dans ton prog que tu lances en tâche de fond, tu déroutes le signal pour fermer l'appli proprement à la réception.
envoi d'un signal :
kill(pid_du_programme, type_signal); //avec type_signal=SIGINT par exemple
déroutement du signal (à placer dans le prog en tâche de fond):
signal(type_signal, fonction_interruption);
//il faut déclarer avant la fonction d'interruption
void fonction_interruption () {
//le code à éxécuter à la réception du signal
}
n'oublie pas d'inclure signal.h et voilà
par contre je pense pas que c'est possible de le remettre au premier plan, puisque c'est le principe même d'une tâche de fond
#3 Le 04/02/2007, à 19:02
- Chaussette
Re : "system(prog &)" Met prog en tache de fond. Mais comment l'arrêter ?
Salut,
le programme que je lance est en fait cette commande
"mplayer -msglevel all=-1 "addresse d'un flux" ".
"déroutement du signal (à placer dans le prog en tâche de fond)"
Du coup ça je ne peux pas le faire.
Je cherche juste a lancer un lecteur sur un flux, sans que mon programme ne s'arrête.
Dernière modification par Chaussette (Le 04/02/2007, à 19:05)
Les clowns se marient en grande pompes
Hors ligne
#4 Le 06/02/2007, à 21:37
- Chaussette
Re : "system(prog &)" Met prog en tache de fond. Mais comment l'arrêter ?
http://www.dil.univ-mrs.fr/~massat/ens/docs/thread.html
Ben vi, les thread. Mais je ne savais pas ce que c'était jusqu'à aujourd' huit!
Je vais donc m'attarder sur le sujet. L'exemple donné laisse entrevoir un sujet intéressant, et puis je vais pouvoir avancer facilement, comme ça.
c'est tout :)
Les clowns se marient en grande pompes
Hors ligne
#5 Le 13/02/2007, à 19:02
- ekra
Re : "system(prog &)" Met prog en tache de fond. Mais comment l'arrêter ?
Bonjour,
fg
ou fg JOB (ou PID je sais plus )
PTC !
GPG Key ID = 5518CFC7
Hors ligne