Ist Gerätedatei ein Fifo?

Gast #3556902
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
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".
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
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
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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.