🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: ch.comp.os.linux
Article #18920

Bourne-Shell: zweistellige File-Deskriptoren?

#18920
From: Stefan Haller
Date: Mon, 07 Feb 2000 00:00
44 lines
2008 bytes
Hallo

ich hatte vor kurzem ein hinterhaeltiges Problem mit einer Applikation.
Hinterhaeltig deshalb, weil es nur ab und zu (abhaenig von der Art des
Aufrufs) aufgetreten ist. Die Applikation kommuniziert ueber pipes mit
einem Bourne-Shell-Script.
Ich habe das Problem eigentlich geloest (glaube ich), moechte jedoch
noch verifizieren, ob ich mit meiner Annahme ueber den Ursprung des
Fehlers richtig liege.

Obwohl zahlreiche Shell-Script-Programmier-Dokumente im Web vorhanden
sind, konnte ich bisher keines finden, welches den Umgang mit File
Deskriptoren genauer beschreibt.

Folgende 2 Funktionen werden zur Kommunikation mit dem Vater-Prozess
verwendet innerhalb des Shell-Scripts. $INPUTFD und $OUTPUTFD enthalten
die nummern der jeweiligen Filedeskriptoren der Pipes je fuer Lesen und
Schreiben.

receive ()
{
    read  INPUT <&$INPUTFD;
    echo "$INPUT";
}

send ()
{
    echo $1 >&$OUTPUTFD;
}


Ich stellte fest, dass das Programm immer dann abgebrochen ist, wenn
einer der Deskriptoren >=10 geworden ist. Als Loesung schliesse ich nun
vorher alle nicht benoetigten File-Deskriptoren und weise den benutzten
fd's neue nummern mit Hilfe von dup() zu.
Meine Theorie also: sh kann nur einstellige fd's benutzen (aehnlich wie
$1, $2 etc. die ja mit dieser Syntax auch nur bis 9 gebraucht werden
koennen (oder verwechsle ich da was?)).

Meine Frage nun: ist meine Theorie richtig? und wenn ja: mit welcher
Syntax kann dieses Problem behoben werden?

Danke und Gruss
 Stefan
Technical Details
Message-ID: <389E91C0.FBE4C6D5@ascom.ch>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit
X-Google-Thread: f4b73,290652182aca1719,start
X-Google-Attributes: gidf4b73,public
From: Stefan Haller <stefan.haller@ascom.ch>
Subject: Bourne-Shell: zweistellige File-Deskriptoren?
Date: 2000/02/07
Message-ID: <389E91C0.FBE4C6D5@ascom.ch>
X-Deja-AN: 582580117
Content-Transfer-Encoding: 7bit
Organization: ASCOM AG
X-Accept-Language: en
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0
Newsgroups: ch.comp.os.linux