Hallo! Ich habe mal zur Programmierung in C eine Frage, wie ich am besten einen Wert "Hallo" einlesen und diesen anschließend wieder ausgeben kann. Nun ich glaube für diese Realiserung benötige ich Zeiger. Allerdings bin ich damit noch gar nicht fit. Deswegen hoffe ich, dass mir jemand eine Lösung posten kann. Ich will mit char buffer[255]; MyDev = open("/dev/MyDev",O_RDWR); res = read(MyDev,buffer,255) einen Wert einlesen und diesen in buffer speichern. Jetzt will ich zur Kontrolle den Wert wieder ausgeben mit res = write(MyDev, , ) So, und genau da komme ich jetzt nicht weiter. Eigentlich muss ich soweit ich mir das richtig angelesen habe, einen Pointer initialisieren. Die Struktur res = write(MyDev,buffer,255) wird wohl kaum funktionieren! Theoretisch muss ich den Inhalt an den write Befehl übergeben, allerdings habe ich keine Ahnung, wie ich dies machen soll ;-( Kann mir jemand dafür den richtigen Lösungweg schreiben? Danke! Mfg Marcus
Hi in der Regel ist es ganz einfach: Wie schaut der Funktionsprototyp deiner write-Funktion aus ? Da steht dann genau was due Funktion haben will. Wenn buffer hier als char* gefordert ist (sei mal so), dann schreibste res = write( MyDev, (char*)buffer,.. ); Gerhard
Aha... Demnach mußte ich aber char *buffer[255]; so deklarieren! Aber wie definiere ich dann den read-Befehl???
Nein, mit char buffer[255]; ist zwar z.B. buffer[0] vom Typ char, aber buffer ist vom Typ (char *). Bei den üblichen read- und write-Funktionen klappts wie Gerhard schrieb. Wenn du es ausprobiert hast und es nicht funktioniert, mußt du uns schon die Fehlermeldungen schicken sowie die Funktionsdeklarationen von read und write. Weiter raten werde ich nämlich nicht.
Ok...danke für die Hinweise... Ich werde dies morgen umgehend an meinem Arbeitsrechner ausprobieren...und hoffen, dass es alles so klappt. Falls nicht..ich melde mich... Jeder fängt einmal klein an... Mfg Marcus
> Nein, mit > char buffer[255]; > ist zwar z.B. buffer[0] vom Typ char, aber buffer ist vom Typ (char *). Nicht ganz. buffer ist ein Array und kein Zeiger. Allerdings kann ein Array in den meisten (aber nicht allen) Situationen wie ein Zeiger auf sein erstes Element behandelt werden. Die Unterscheidung ist dennoch sehr wichtig. @Marcus: Du solltest auch mal einen Blick darauf werfen, was read() zurückgibt. Diesen Wert brauchst du beim write() nämlich wieder.
Read, Write, Open sind out! Schau dir mal b. Microsoft die Doku zu CArchive/ MFC an... Gruß Guido
Guido wrote: > Read, Write, Open sind out! Schau dir mal b. Microsoft die Doku zu > CArchive/ MFC an... > Gruß Guido Weder kann ich in der Frage erkennen, dass der OP in C++ programmiert (er erwähnt ausdrücklich C-Programmierung), noch dass er mit einem Microsoft Compiler arbeitet, geschweige denn mit der MFC oder überhaupt auf einem MS Betriebssystem ist. Der Dateinamen "/dev/MyDev" lässt eher eine Vermutung in die Unix Welt zu. Und Read/Write/Open ist keineswegs out.
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.