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

 


Dernière réponse
Sujet : [C/Linux] processus en background
Giz Pour faire tourner un processus en tâche de fond je ferais:
 
Je crée un fork, puis dans le processus père j'apelle la fonction wait(), le père attendra donc la fin du processus fils (qui sera la tâche de fond a executer) et terminera sa tache lorsque le fils aura fini.

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
Giz Pour faire tourner un processus en tâche de fond je ferais:
 
Je crée un fork, puis dans le processus père j'apelle la fonction wait(), le père attendra donc la fin du processus fils (qui sera la tâche de fond a executer) et terminera sa tache lorsque le fils aura fini.
Giz

nikewlas a écrit a écrit :

entres autres, je pense qui doit aussi avoir une histoire avec execlp ou une fonction qui s' en rapproche.  




 
Ben non en fait car les fonctions exec(l/lp/le/v/vp/ve) ne font que REMPLACER LE PROCESSUS COURANT(c'est à dire ton programme que tu as lancé sera terminé à cause de la fonction exec qui s'exécutera...et n'ira pas plus loin!)

 

[edtdd]--Message édité par Giz--[/edtdd]

Fork Petite précision : maintenant, pour terminer ce processus, il faut récupérer son pid avec la command "ps" et envoyer un signal de terminaison avec "kill".
Fork Le principe est de créer volontairement un processus zombie, à une nuance près. Utilise la structure suivante pour ton programme :
 
 
zombie = fork();
 
if( zombie != (pid_t) 0 )
{
   // processus père. On le kill pour reprendre la main.
   exit(0);
}
 
else
{
   // Le processus zombie reprend le pid du père : il redevient  
   // le processus principal, mais s'exécute en tâche de fond.
 
   setsid();
 
   // ton programme en tâche de fond.
   ...
   ...
   exit(0);
}
LeGreg ben  
man fork
 
(desole mais la on parle de linux
donc man :D )
 
LEGREG
Suri

PaLoTTe a écrit a écrit :

 
tu tapes au prompt :
ta_commande &  




[:wam]  :lol:  :lol:  :lol:

nikewlas çà je sais, je voulais comment on fait pour le lancer en tâche de fond à partir d' un programme en C
PaLoTTe

nikewlas a écrit a écrit :

Bonjour,
 
comment faut il faire pour envoyer un processus en tache de fond?
merci.  




 
tu tapes au prompt :
 
ta_commande &

mystereetbouledegomme Il me semble que lors de la creation de threads tu peux preciser leur priorite. Sinon tu fork et tu augmentes le nice...
nikewlas entres autres, je pense qui doit aussi avoir une histoire avec execlp ou une fonction qui s' en rapproche.
Giz Tu parles de l'utilisation de fork...qui permet de dupliquer un processus (pere/fils) ?
nikewlas Bonjour,
 
comment faut il faire pour envoyer un processus en tache de fond?
merci.

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