Bei einer Pipe werden ja 2 Descriptoren geöffnet!
Bist du sicher, dass du auch beide schließt "close()-Funktion"?