Ist Gerätedatei ein Fifo?

Gast #3556902
Lesenswert?

Sind die Gerätedateien für die seriellen Schnittstellen unter Linux im 
Verzeichnis /dev/ttyXXX Fifos mit einer definierten Länge?

Wenn ich z.B. Daten dort empfangen möchte, stet dann immer nur ein 
Zeichen in der Datei drinnen, dass ich je nach Baudrate entsprechend 
schnell auslesen muss oder ist dort ein Puffer vorhanden, dass dort auch 
mehrere Zeichen stehen können?
Persönliche Seite #3556962
Lesenswert?

Das hängt vom Betriebssystem, Treiber und verwendetem Baustein ab, sowie 
von den Einstellungen (Hardware Flusskontrolle...).

In der Regel gibt es einen Puffer, der ist aber auch nicht ewig groß. 
Mit Hardware-Fluskontrolle kann man aber auch hier fast "ewig" warten, 
hängt dann halt von der Dranhängenden Hardware ab.

Praktisch ist aber der PC um dermaßen viele Größenordnungen schneller 
als die Serielle Schnittstelle das man sich schon anstrengen muss was 
"zu verpassen".
#3557243
Lesenswert?

Devices in UNIX (jede Geschmacksrichtung) sind niemals Fifos. Sondern 
... devices. Spezifischer: /dev/ttyXXX sind character devices (es gibt 
auch noch block devices). Die File IO API abstrahiert, ob es irgend- 
welche Queues/FIFOs/$you_name_it in Software (vulgo: im Treiber) oder 
Hardware gibt.

Ein fifo aka named pipe ist eine ganz andere Klasse von Objekt.

Vermutlich wolltest du eine ganz andere Frage stellen.
Etwa "Ist es möglich, mehrere Zeichen in einem Rutsch von einen Device 
zu lesen / zu schreiben?". Bzw. "Ist es möglich, das zu tun, ohne dabei 
in ein blockierendes read() oder write() zu laufen?"


XL
#3557661
Lesenswert?

Rufus Τ. Firefly schrieb:
> Axel Schwenke schrieb:
>> Ein fifo aka named pipe ist eine ganz andere Klasse von Objekt.
>
> Der Begriff "fifo" ist allerdings auf ganz erheblich mehr Konstrukte als
> nur named pipes anwendbar, vor allem wird er häufig für die Sende- und
> Empfangspuffer serieller Schnittstellen angewandt.

Das ist richtig. Nur ist im Umfeld unixoider Betriebssysteme der Begriff 
fifo nun mal belegt. Im allgemeinen wird es als hilfreich angesehen, 
wenn man zur Kommunikation Begriffe so verwendet, wie sie (im jeweiligen 
Fachbereich) definiert sind. Ein Herzchirurg und ein Klempner mögen 
beide den Begriff Bypass verwenden. Trotzdem meinen sie damit 
verschiedene Dinge.


XL
Gast #3557719
Lesenswert?

Axel Schwenke schrieb:
> Ein Herzchirurg und ein Klempner mögen
> beide den Begriff Bypass verwenden. Trotzdem meinen sie damit
> verschiedene Dinge.

Wirklich? Ich meine, daß sie beide exakt das Gleiche meinen. Okay, das 
"Material" ist verschieden, aber beide meinen doch eine Rohrleitung, die 
eine Umgehung eines bestimmten Abschnitts zur Aufgabe hat.

Und ein FIFO ist lediglich die Abkürzung für "first in - first out".
Meiner Ansicht nach sind named pipes genau dadurch charakterisiert.
Das heißt, fifo ist nur der Oberbegriff, unter den zum Beispiel auch 
named pipes fallen, richtig?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren