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?
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.