vector<unsigned uchar> in write( ... )
-
Hallo,
ich habe einen Vector<unsigned char> und möchte diesen mit der Funktion write, über die serielle Schnittstelle an einen anderen Rechner schicken. Die serielle Schnittstelle ist schon initialisiert und bereit zum Senden. Meine Frage ist, wie übergebe ich diesen Vector an die write-Funktion?
vector<unsigned char> Data(3); Data[0] = 'A'; Data[1] = 'b'; Data[2] = 'c'; write(fd_device, ???, Data.size());
Danke für Eure Hilfe.
Gruß
-
&Data[0]
eventuell noch casten
-
Ja das wollte ich eben vermeiden, jedes Zeichen einzeln zu übergeben. Ich wollte den kompletten Vektor auf einmal an die Funktion übergeben.
Jetzt habe ich es aber:
write(fd_device, &*Data.begin(), Data.size());
Danke aber für die schnelle Antwort.
Gruß
-
öhm, ich würde mir an deiner Stelle lieber eine Vernünftige Serialisierungslösung für die Klassen basteln, da du dir so leicht ins Bein schießt, wenn eine Klasse zB. Pointer enthält oder die Rechner unterschiedliche Platformen/Compiler/C++-Libs nutzen.
-
Bei dem was ich gepostet habe wird nicht jedes einzelne Zeichen übergeben. Man gibt doch nur die Startposition an und dann die Größe/Länge.
-
stream-operatoren << und >> von vector überladen, dort solltest du dann entsprechenden code implementieren, der das zeug streamen kann, die serielle schnittstelle solltest du auch über eine klasse stream-fähig machen, intern kann die ja read und write benutzen... so würde ich das machen, wäre eine saubere und schöne C++ Implementation.