Bonjour,
Je réalise un mini projet en C sur un spooler d'impression...tout va bien pour l'instant.
Le serveur tourne en fond (daemon), il lit les messages dans une queue (IPC).
Et en même temps, j'aimerai bien consulter l'état de la queue, donc coté serveur j'aurai également l'intéraction avec l'utilisateur au clavier pour lire 2 commande
par exemple: "liste" (pour afficher les impressions en attente) et "annule" pour annuler une impresssion
Mais mon probleme est tout bête je pense...
Donc, j'ai un programme gestimp-serveur.c qui écoute en boucle les messages dans la queue et les traite.
Mais, j'aimerai bien qu'il puisse intéragir avec l'utilisateur, du coup, j'ai créais un seconde programme (invite_cmd.c"), qui écoute au clavier bétement (scanf) et qui réalise les traitement que je veux faire.
la structure donne ça:
1 2 3 4 5 6 7 8 9 10 11
| <--- code gestimp-serveur.c --->
main()
...
switch(pidFils = fork()){
case -1: blabla erreur etc...break;
case 0: /* (on est dans le fils) */
execl("invite_cmd.exe", NULL, NULL);
break;
default: /* on est dans le pere */
// code du deamon --> écoute la file + traitement
} |
Je lance mon appli
./gestimp-server.exe dans le terminal
Il lance mon deamon, lorsqu'on envoie des messages dans la file (avec le client que j'ai pas détaillé ici), il les affiche sur le terminal.
MAIS, le programme "invite_cmd" qui est censé lire les scanf au clavier...il a pas la main au terminal, du coup, je peux rien faire...
Ma question: comment procéder pour que le serveur puisse afficher des messages sur le terminal, et que mon programme fils lui puisse EGALEMENT ET EN MEME TEMPS afficher et LIRE !
Je sais pas trop comment procéder, j'ai fais des recherches sans résultat !
Si vous pouviez aider une étudiante
qui galère un peu...
Cécilia, cordialement.
Partager