Mailinglist Archive: opensuse-de (4938 mails)

< Previous Next >
Re: Zufallssignaturen
  • From: B.Brodesser@xxxxxxxxxxxxxx (Bernd Brodesser)
  • Date: Mon May 22 14:37:33 2000
  • Message-id: <20000522163733.F15665@xxxxxxxxxxxxxx>



* Kampe, Christoph schrieb am 22.Mai.2000:

Was ist eine "Named Pipe" und wie geht man damit um/legt sie an?

Linux kennt sieben grundsätzlich verschiedene Dateitypen.
Normalerweise hat man normale Dateien (-) und Verzeichnisse (d) zu
tun, auch symbolische Links (l) kommen häufiger vor. Es gibt aber auch
noch Zeichenorientierte- (c) bzw. Blockorientierte (b) Grätedateien.
Diese gibt es im Verzeichnis /dev. Darüberhinaus gibt es Sockets (s)
und eben Named Pipes (p), auch fifo (first in, first out) genannt.

Wenn man ls -l sagt, so steht das, was ich oben eingeklammert habe als
ersten Buchstabe vor den Rechten.

Named Pipes funktionieren ähnlich wie die normale Pipe | nur, daß sie
halt einen Namen haben. Während die normale Pipe von einem Prozeß
angelegt wird und nur von diesem oder seinen Erben benutzt werden
kann, kann eine Named Pipe auch von nicht miteinander verwandte
Prozesse benutzt werden.

Named Pipes kann man mit mknod generieren. mknod FIFO p
erzeugt die Named Pipe FIFO.

welche schönen weiteren Zwecke koennte man damit erfuellen?

Man kann in einer Named Pipe hineinschreiben und ein anderes Programm
kann aus der Named Pipe lesen. Spaßeshalber kannst Du mal, nachdem Du
wie oben FIFO angelegt hast

less -f FIFO sagen.

Von einem anderen Terminal aus, gibts Du dann etwas in FIFO ein. Z.B:
echo "Hallo World" > FIFO
oder aber auch
cat /etc/passwd > FIFO

und schon wird es auf dem ersten Terminal ausgegeben. Wichtig ist
aber, daß man zuerst liest und dann schreibt, da ein schreibender
Zugriff normalerweise dicht macht, nachdem alles hineingeschrieben
wurde.

(oder: welcher Daemon macht das - bzgl der man-page)

Auf /dev gibt es z.B. eine Named Pipe namens xconsole.

Manpage gibt es mit:
man 4 fifo

Im vierten Abschnitt der Man-Pages stehen Beschreibungen von
speziellen Dateien, meißt Gerätedateien, aber auch fifos.

PS: Ich habe die Zufallssignatur ganz ohne Named Pipe gemacht.

Mein Signaturprogramm lautet:

------~/.sig/signatur-------------------------------------------
#! /bin/bash

ANZAHL=$(ls /home/brod/.sig/sig_*[0-9] | wc -l)
SIGNATUR=$(($RANDOM % $ANZAHL))
cat /home/brod/.sig/sig_$SIGNATUR
------------------------------------------------------------------

Dabei wird in der ersten Zeile (ANZAHL=...) ermittelt, wieviele
Signaturen es gibt. Die Signaturen heißen bei mir /home/brod/.sig/sig_0
bis /home/brod/.sig/sig_12. Wichtig ist, daß sie mit 0 beginnen und
ununterbrochen bis zur letzten Zahl laufen.

In der zweiten Zeile wird durch Zufall eine Signatur ausgewählt. Dabei
steht $RANDOM für eine Zufallszahl zwichen 0 und 32767. Das % ist die
mod-Funktion so wie in C.

In der dritten Zeile letztendlich wird die Signatur auf
Standardausgabe ausgegeben.

im .muttrc steht:

et signature=/home/brod/.sig/signatur|

Wichtig ist das | am Ende. Das bedeutet, daß nicht die Datei selber
als Signatur ausgegeben wird, sondern daß diese Datei ausgeführt wird
und die Standardausgabe diesen Befehls als Signatur genommen wird. Es
wird halt eine Pipe benutzt, aber keine Named Pipe. ;))

Funktioniert aber nur mit mutt. Mit kmail hat es auch mal funktioniert.
Bekomme ich aber nicht mehr hin. Da ich es aber nicht benutze, versuche
ich es aber auch nicht mehr es noch mal hin zu bekommen.

Bernd


--
Bitte die Etikette von Christian beachten: http://www.ndh.net/home/schult/
Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten
benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen,
sonst nichts. |Zufallssignatur 4

---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx


< Previous Next >
Follow Ups
References