Forum: PC Hard- und Software Ist Gerätedatei ein Fifo?


von Irrwicht (Gast)


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?

von Läubi .. (laeubi) Benutzerseite


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".

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ein paar Hinweise dürfte es hier geben:
http://www.tldp.org/HOWTO/html_single/Serial-HOWTO/

von Axel S. (a-za-z0-9)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Axel S. (a-za-z0-9)


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

von ich (Gast)


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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.