Ipsa_2009
Messages postés2Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention23 février 2005
-
18 févr. 2005 à 16:30
mhooreman
Messages postés12Date d'inscriptionlundi 28 février 2005StatutMembreDernière intervention28 février 2005
-
28 févr. 2005 à 13:06
Bonjour ou bonsoir,
Je suis debutant (1 mois) et je voudrais savoir si il existe une commande en C++ pour qu'un programe (que je concois en C++) que je lance manuellement s'execute en arriere plan (sans toucher au registe)
Ipsa_2009
Messages postés2Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention23 février 2005 23 févr. 2005 à 19:31
Oui mais comment faire je ne sais pas comment executer; programmer le programme sans qu'il ouvre une fenetre !
il faudrait que qq1 m'explique la procedure ?!
mhooreman
Messages postés12Date d'inscriptionlundi 28 février 2005StatutMembreDernière intervention28 février 2005 28 févr. 2005 à 13:06
Salut.
Un programme est en arrière plan à partir du moment où, d'une part, il
n'est plus lié à aucune commande ni à aucune fenêtre et, d'autre part,
la sortie et l'erreur standard sont fermées.
Je vais donc te donner une recette toute faite, mais ce n'est pas
portable sous windows. A toi d'adapter et de te renseigner (google is
your friend): je ne programme pas pour cet os.
Dans celle-ci, on duplique le programme (process), ce qui crée un
parent et un enfant. On quitte ensuite le parent pour qu'il rende la
main au système, et l'enfant tourne tout seul.
#include <sys/types.h>
#include
int main(int argc, char **argv)
{
switch(fork()) {
case -1: /*error*/
perror("Unable to fork daemon");
exit(EXIT_FAILURE);
case 0: /*we are in the parent process*/
/* Close stdin, stdout and stderr.
*/
fclose(stdin);
fclose(stdout);
fclose(stderr);
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
/* PLACER ICI CE QUI DOIT TOURNER EN ARRIERE PLAN */
default: /* parent process comes here, it must quit */