res = read (fd, buffer, 255)

Gast #487893
Lesenswert?

Hallo!
Folgende Funktionsaufruf zum Einlesen einer I/O-Verbindung habe ich 
gefunden.
res = read (fd, buffer, 255)
Jetzt würde ich gerne, was die einzelnen Parameter bedeuten und
wie ich diese weiter verarbeiten kann. Ich lese damit den seriellen Port 
ein,
was für einen Inhalt hat denn res ??
fd = filediscriptor,
255 = Anzahl der Bytes
Vermutlich ist buffer, vorher als char *buffer deklariert

Wie übergebe ich res an einen String ?
Danke vorab für Eure Mithilfe...!
Gast #487964
Lesenswert?

Hi !
Sorry, aber irgendwie komme ich mit den Informationen nicht weiter. Aus 
dem was ich gelesen habe, bekomme ich mit "res = read (fd, buffer, 255)" 
einen Wert an res übergeben. Nur ich kann immer noch nicht 100% sagen, 
was der Inhalt des buffer ist. Am Anfang des Quelltext ist noch char 
buffer[255] und int res definiert. Fall ich jetzt die serielle einlesen, 
als Besipiel ich tippe hallo ein, wird der Wert doch irgendwo vorhanden 
sein,oder?
Wäre nett, wenn mir jemand weiterhelfen könnte!
Gast #487996
Lesenswert?

"read gibt die Anzahl der gelesenen Zeichen zurück."

d.h. 'res' ist nach dem Aufruf die Anzahl der gelesenen Zeichen. Wenn 
res > 0, dann sind im 'buffer' sind die Zeichen buffer[0] bis 
buffer[res-1] gültig.

> Fall ich jetzt die serielle einlesen, als Besipiel ich tippe hallo ein, > wird 
der Wert doch irgendwo vorhanden sein,oder?

Irgendwo ja. Mit read() bekommst du diese Daten allerdings nur, wenn 
read() in der Library so geschrieben ist, dass ein Einlesen von der 
seriellen Schnittstelle möglich ist UND du 'fd' so eingestellt hast, 
dass der Dateideskriptor der Eingabe von der seriellen Schnittstelle 
entspricht. En detail erklärt das die Dokumentation der von dir 
benutzten C-Library.
Gast #487998
Lesenswert?

Also ich würde sagen, dass die eingelesenen Daten in 'buffer' stehen (im 
Speicher beginnend an der Adresse 'buffer'). In 'res' (=result=ergebnis) 
wird übergeben, ob 'read' funktioniert hat, oder ob ein Fehler auftrat.

Eine genaue Beschreibung von 'read' und dessen Parametern würde ich in 
der Dokumentation des verwendeten Compilers vermuten.

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