First page Back Continue Last page Overview Graphics

Solution, part 2

Unused exits of the pipes will get closed.

Four rows will get read.

def parent():

pipein, pipeout = os.pipe()

if os.fork() == 0:

os.close(pipein)

child(pipeout)

else:

os.close(pipeout)

counter = 1

pipein = os.fdopen(pipein)

while True:

print('verse {}'.format(counter))

for _ in range(4):

verse = pipein.readline()[:-1]

print(verse)

counter += 1

input("Press RETURN for next verse")

print()

parent()