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

  FORUM HardWare.fr
  Programmation
  C

  Problème de pipe (grrrr)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de pipe (grrrr)

n°440675
peak
Posté le 26-06-2003 à 18:32:30  profilanswer
 

Bon je comprend plus rien  :fou:  
 
je m'explique :
 
j'ai un processus ./Htbl_main
dans lequel je créé une pipe et l'ouvre

Code :
  1. if( mknod("Htbl", S_IFIFO | 0666, 0) == EXIT_FAILURE)
  2.  erreur("impossible de cree pipe Htbl\n" );
  3. if( (pipe_Htbl = open("Htbl", O_RDONLY)) == EXIT_FAILURE )
  4.  erreur("ouverture de pipe Htbl\n" );


 
Quand je lance Htbl_main dans un terminal pas de prob mon pipe est créé dans mon FS et il est dailleur visible depuis mon explorateur par contre EXACTEMENT le même exe lancé appartir d'un processu ./init ne me renvoit pas d'erreur lor de la création mais le pipe n'est pas créé dans mon FS(!) et le prog plante a l'ouverture!???????????????
 
ça doit bien fair 3heures que je suis dessus et vraiment je capte pas du tout ce qui pourrai bien en être la cause!?
 

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <unistd.h>
  4. #include <errno.h>
  5. #include <sys/wait.h>
  6. int main (void)
  7. {
  8. pid_t pid_fils;
  9. gid_t gid;
  10. setgid(gid);
  11. do {
  12.  pid_fils = fork ();
  13. } while ((pid_fils == -1) && (errno == EAGAIN));
  14. if (pid_fils == -1) {
  15.  fprintf (stderr, "fork() impossible, errno=%d\n", errno);
  16.  return (1);
  17. }
  18. if (pid_fils == 0) {
  19.  // processus fils
  20.  fprintf (stdout, "fils : lancement de gestion_connections_clients\n" );
  21.  system("xterm -bd black -bg black -fg green -geometry 80x15+75+100 -T Serveur  -e ./serveur&" );
  22.  system("xterm -bd black -bg black -fg green -geometry 80x15+75+550 -T Admin  -e ./admin" );
  23. }
  24. else {
  25.  // processus père
  26.  fprintf (stdout, "père : lancement de gestion Hashing table\n" );
  27.  system("xterm -bd black -bg black -fg green -geometry 80x15+75+325 -T Htbl_main  -e ./Htbl_main" );
  28. }
  29. kill(getppid(), 0);
  30. if(!pid_fils)
  31.  unlink("Htbl" );
  32. return (EXIT_SUCCESS);
  33. }


 

mood
Publicité
Posté le 26-06-2003 à 18:32:30  profilanswer
 

n°440677
Taz
bisounours-codeur
Posté le 26-06-2003 à 18:39:20  profilanswer
 

bah, un claque sur les fesses et voilà :D  
 
(2sec, j'édites)
 
EDIT:
c'est quoi ces EXIT_FAILURE dans tes tests? si mknod merde, il renvoie canoniquement -1
 
et ça c'est louche
 
 kill(getppid(), 0);
if(!pid_fils)
 unlink("Htbl" );
 
c'est quoi ce kill? pourquoi de pas dire au pere d'attendre que les fils terminent avec un wait, puis supprimer le pipe.
 
 
les system c'est pas mal, ce la dit, comme tu t'en sers pour lancer des processus en taches de fond dans un cas ou soit pour executer un seul et unique processus, moi j'aurais plutot procéder avec d'autres fork et recouvrement. mais bon, c'est valide


Message édité par Taz le 26-06-2003 à 18:47:49
n°440702
peak
Posté le 26-06-2003 à 18:59:08  profilanswer
 

pour le EXIT_FAILLURE c'tai juste comme ça me disait ke c'tai mieux mais j'en suis pas du tout convaincu ; je me disait que c'tai plus portable si un kernel revoyait -2 y sufirrai de redefinir EXIT_FAILLURE, fin, je pensai que ça servai plus ou moins à ça !?  
 

Citation :

et ça c'est louche  
 
kill(getppid(), 0);  
if(!pid_fils)  
unlink("Htbl" );  


moi aussi je trouve ça louche  :D , non en fait l'idée c'est que ./serveur est dans une boucle infini et ke Htbl_main verifie juste l'état d'un semaphor ke Admin peu basculer si le semaphore est basculé ./Admin revient dans init et j'aimerai autant que se soit ./Htbl_main qui unlink son pipe...
 
le kill tue tout les processus du même groupe (dont init est le leader)
 
EN ecrivant ce post j'ai trouvé le stress!!! :D :D :D :D
 
Merci!!! c'tai une connerie; pfff 3H pour ça; c'est decourageant  :sweat:  
 
Merci ++Taz  
 
ps: je croit k'on aura l'occasion de se recroiser sur ce forum pendant ces vacances  ;)


Message édité par peak le 26-06-2003 à 19:00:11
n°440823
nraynaud
lol
Posté le 26-06-2003 à 21:09:49  profilanswer
 

Citation :

Sujet : Problème de pipe (grrrr)


C'est sur que si tu montres les dents ....

n°440828
Taz
bisounours-codeur
Posté le 26-06-2003 à 21:14:50  profilanswer
 

c'est quoi déjà la blague...
 
c'e'st une fille un peu timide qui sait pas trop comment faire. son copain, tres motivé: 'c'est simple: tu n'as qu'a dire honolulu'. Le grand moment arrive, mademoiselle se lance et là  %% crac %% Aïïïïïïïïïeeee:fou:  :fou:  :fou: . 'désolée, je savais plus quoi dire, alors je me suis dit que Carcassone, ça devait marcher aussi'
 
 :D    [:spamafote]

n°440833
nraynaud
lol
Posté le 26-06-2003 à 21:20:34  profilanswer
 

++Taz a écrit :

c'est quoi déjà la blague...
 
c'e'st une fille un peu timide qui sait pas trop comment faire. son copain, tres motivé: 'c'est simple: tu n'as qu'a dire honolulu'. Le grand moment arrive, mademoiselle se lance et là  %% crac %% Aïïïïïïïïïeeee:fou:  :fou:  :fou: . 'désolée, je savais plus quoi dire, alors je me suis dit que Carcassone, ça devait marcher aussi'
 
 :D    [:spamafote]  


[++++]  
 
Bon, faudrait quand même que je lise sa question et que je voie si je peux pas y répondre avant de me faire plonker pour blablatage !

n°440834
nraynaud
lol
Posté le 26-06-2003 à 21:24:05  profilanswer
 

Peak a écrit :


Quand je lance Htbl_main dans un terminal pas de prob mon pipe est créé dans mon FS et il est dailleur visible depuis mon explorateur par contre EXACTEMENT le même exe lancé appartir d'un processu ./init ne me renvoit pas d'erreur lor de la création mais le pipe n'est pas créé dans mon FS(!) et le prog plante a l'ouverture!???????????????


système de fichier encore en read-only au moment du lancer de processus (bientôt interdit par l'ONU d'ailleur) ?


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

  Problème de pipe (grrrr)

 

Sujets relatifs
probleme de mise en pageProbleme d utilisation d une DLL externe
[VC++] Problème étrange ![FLASH] J'ai un petit problème de séquence ?
[HTML/JS] Problème de RefreshProblème avec JCreator Pro
Probleme avec if ( )Probleme pour générer dynamiquement une expression
Problème avec list<int>[VB]Problème caractères spéciaux [Resolu]
Plus de sujets relatifs à : Problème de pipe (grrrr)


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