Dirk: pipe

hallo,

ich verinnerliche mir gerade die pipe-funktion. dabei ist mir im beispielscript auf http://selfhtml.teamone.de/cgiperl/funktionen/systemaufrufe.htm#pipe folgendes aufgefallen: im if-zweig (elternprozess) wird erst das LESE_HANDLE und zum schluß das SCHREIB_HANDLE geschlossen, was mir einleuchtet. im else-zweig (kindprozess) wird das SCHREIB_HANDLE geschlossen, aber das LESE_HANDLE nicht mehr. ist das nicht nötig, weil's mit exit(0); eh geschlossen wird? oder ist das nur ein "schönheitsfehler"?

gruß,

Dirk

  1. Hi,

    oder ist das nur ein "schönheitsfehler"?

    es ist mindestens unsauber; auch wenn ich momentan nicht sicher bin, ob es ein Fehler oder anderweitig problematisch sein könnte. Alle geöffneten Handles sollten auch wieder geschlossen werden.

    Was man beim Schließen von lesend geöffneten Dateien (im Gegensatz zu schreibend geöffneten) jedoch weglassen kann ist, den Fehlerfall abzufangen ("close(X) or die $!") - den gibt's nämlich nicht.

    Cheatah