Named Pipe



  • Hallo!

    Ich habe ein Problem mit den named Pipes...
    Nach einem fork() prüfe ich ob Elternprozess oder Kindprozess. Der Elternprozess sollte in die Pipe schreiben, der Kindprozess aus der Pipe lesen.
    Im Elternprozess erstelle und öffne ich die Pipe:

    if (mkfifo("TESTPIPE", 0666) == -1){
            fprintf(stderr,"Error creating the named pipe"); 
            return EXIT_FAILURE;
          }
          printf("Die Pipe wird geöffnet");
          fd = open("TESTPIPE", O_WRONLY);
    

    Doch beim Erstellen der Pipe wird alles blockiert, es passiert gar nichts mehr auf der Seite des Elternprozesses, vom Schreiben in die Pipe gar nicht mal zu sprechen. Der Kindprozess arbeitet in der Zwischenzeit auch wieder und versucht aus der Pipe zu lesen, was ja natürlich nicht klappt.

    Was mache ich falsch

    lieben Dank
    Simone



  • leider hast du recht wenig hier von deinem code gepostet.

    fd = open("TESTPIPE", O_WRONLY);
    

    steht das vor dem fork? wenn ja und du verwendest fd in eltern- und kindprozess, dann kann keiner drauf schreiben, da der filedescriptor write only geöffnet wurde. probier mal O_RDWR. sollte das nicht helfen, poste bitte mehr von deinem programm.


Anmelden zum Antworten