waltbrad wrote: > I'm proceeding slowly though the Lutz book "Programming Python". I'm > in the section on named pipes. The script he uses has two functions: > one for the child the other for the parent. You start the parent then > the child: > > python pipefifo.py #starts the parent > > file /tmp/pipefifo # shows that the file is a named pipe
You appear to be using something Unix-like. > python pipefifo.py -child # starts a child process and writes to the > pipe. > > This is done between two command windows - the first for the parent > and the second for the child. > > Now, the child's write loop is infinite. So, I used Ctrl-C and stopped > the process. But the parent's read loop is also infinite and without > and exception, so it keeps reading from the pipe after the child is > shutdown even though the lines are empty. So, I had to shut that down > also. > > I then wanted to start the child process first and see what happened > when I ran the parent. Well that works but the reads come out in > random order. This got me wondering about the pipe file itself. So I > tried to open it with leafpad and found that I couldn't. I guess > these files can only be opened by processes? > > Okay. But exactly when does the system brand this file as a named pipe > and how? A Unix fifo is only nominally a file. It's really just a convenient way of referring to an in-memory object. mkfifo f some_prog > f & cat f Is semantically equivalent to: some_prog | cat If you want to peruse the data in your editor, use a regular file, not a fifo. Have the writer (producer, "child" in your example) open it in append mode. -- http://mail.python.org/mailman/listinfo/python-list