24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

66 2 <strong>UNIX</strong><br />

Auch hier sollte man den Suchraum möglichst e<strong>in</strong>grenzen. In beiden<br />

Fällen kann der Normalbenutzer durch Zugriffsrechte an Verzeichnissen ausgesperrt<br />

werden.<br />

E<strong>in</strong>e ähnliche Aufgabe wie die L<strong>in</strong>ks erfüllt die alias-Funktion der Shell.<br />

E<strong>in</strong> alias lebt und stirbt jedoch mit der Shell, während e<strong>in</strong> L<strong>in</strong>k im File-<br />

System verankert ist und für alle Benutzer gilt.<br />

Merke: Nach e<strong>in</strong>em Kopiervorgang hat man zwei vone<strong>in</strong>ander unabhängige<br />

Files, das Orig<strong>in</strong>al und die Kopie. Nach e<strong>in</strong>em L<strong>in</strong>kvorgang hat man zwei<br />

Namen für dasselbe File.<br />

2.4.9 std<strong>in</strong>, stdout, stderr<br />

Drei Files s<strong>in</strong>d für jede Sitzung automatisch geöffnet: std<strong>in</strong> (<strong>in</strong> der Regel die<br />

Tastatur), stdout (<strong>in</strong> der Regel der Bildschirm) und stderr (<strong>in</strong> der Regel<br />

ebenfalls der Bildschirm). Wir er<strong>in</strong>nern uns, Geräte werden von <strong>UNIX</strong> formal<br />

als Files angesprochen. Andere Systeme kennen noch stdaux (Standard<br />

Auxiliary Device) und stdprn (Standard Pr<strong>in</strong>ter Device).<br />

Zu den File-Po<strong>in</strong>tern std<strong>in</strong>, stdout und stderr gehören die File-<br />

Deskriptoren 0, 1 und 2. File-Po<strong>in</strong>ter s<strong>in</strong>d Namen (genauer Namen von<br />

Po<strong>in</strong>tern auf e<strong>in</strong>e C-Struktur vom Typ FILE), File-Deskriptoren fortlaufende<br />

Nummern der für e<strong>in</strong> Programm geöffneten Files. Microsoft bezeichnet die<br />

Deskriptoren als Handles. In Programmen wird durch e<strong>in</strong>en open-Aufruf<br />

e<strong>in</strong>em Filenamen e<strong>in</strong> File-Po<strong>in</strong>ter oder e<strong>in</strong> File-Deskriptor zugeordnet, mit<br />

dem dann die weiteren Anweisungen arbeiten. Die <strong>UNIX</strong>-Systemaufrufe (2)<br />

verwenden File-Deskriptoren, die C-Standardfunktionen (3) File-Po<strong>in</strong>ter. Beispiele<br />

f<strong>in</strong>den sich im C-Programm 2.42 File-Informationen auf Seite 214.<br />

Werkzeuge soll man möglichst so schreiben, daß sie von std<strong>in</strong> lesen, ihre<br />

Ausgabe nach stdout und ihre Fehlermeldungen nach stderr schreiben.<br />

Dann s<strong>in</strong>d sie allgeme<strong>in</strong> verwendbar und passen zu den übrigen Werkzeugen.<br />

Solche Programme werden als Filter bezeichnet.<br />

E<strong>in</strong> leeres File wird mit der Umlenkung > filename, mit cat(1) oder<br />

touch(1) angelegt. Zum Leeren e<strong>in</strong>es Files kopiert man /dev/null dorth<strong>in</strong>.<br />

Das Kommando tee(1) liest von std<strong>in</strong>, schreibt nach stdout und<br />

gleichzeitig e<strong>in</strong>e Kopie der Ausgabe <strong>in</strong> e<strong>in</strong> File, wie e<strong>in</strong> T-Stück sozusagen:<br />

who | tee whofile<br />

Über das Verb<strong>in</strong>den von stdout e<strong>in</strong>es Prozesses mit std<strong>in</strong> e<strong>in</strong>es zweiten<br />

Prozesses mittels e<strong>in</strong>er Pipe wurde bereits <strong>in</strong> Abschnitt 2.3.6.2 Pipes auf<br />

Seite 39 gesprochen.<br />

Als Kontroll-Term<strong>in</strong>al /dev/tty e<strong>in</strong>es Prozesses werden der Bildschirm<br />

und die Tastatur bezeichnet, von denen der Prozess gestartet worden ist.<br />

Über se<strong>in</strong> Kontroll-Term<strong>in</strong>al wickelt der Prozess se<strong>in</strong>e E<strong>in</strong>- und Ausgabe ab,<br />

falls nichts anderes vere<strong>in</strong>bart wird. Das ist fast dasselbe wie die File-Po<strong>in</strong>ter<br />

std<strong>in</strong> usw., aber nur fast. Während /dev/tty e<strong>in</strong> Gerät oder e<strong>in</strong> Special Device<br />

File ist, s<strong>in</strong>d die drei File-Po<strong>in</strong>ter zunächst e<strong>in</strong>mal nur logische Quellen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!