PPL7-Icon Patrick's Programming Library Version 7.0.0 - Dokumentation
Peek und Poke

Funktionen zum Zugriff auf den Speicher. Mehr ...

Ausführliche Beschreibung

Beschreibung:
Bei den Peek- und Poke-Funktionen handelt es sich um Funktionen zum Platform-unabhängigem Schreiben und Lesen von Werten im Hauptspeicher. Die Funktionsnamen sind eine Homage an den Commodore 64, zu dessen BASIC-Wortschatz Peek und Poke gehörten.
Bei den Poke-Funktionen handelt es sich um Funktionen zum Schreiben in den Speicher im Little-Endian-Format, was beispielsweise von Intel und AMD verwendet wird. Mit den Peek-Funktionen kann der Wert wieder ausgelesen werden.
Bei PokeN und PeekN handelt es sich um identische Funktionen, die die Werte jedoch im Big-Endian-Format verarbeiten, was auf vielen RISC-CPUs zu finden ist, z.B. Motorola, Sparc und PowerPC. Da derartige CPUs häufig in Netzwerk-Equipment zu finden ist (Routern), spricht man auch von "Network-Byte-Order", woher auch das "N" im Namen der Funktionen kommt.
Mehr Informationen zu Big- und Little-Endian sind in der Wikipedia zu finden: http://de.wikipedia.org/wiki/Byte-Reihenfolge
Verwendung
In der Regel wird man mit den durch die Sprache C/C++ bereitgestellten Mitteln auf den Speicher zugreifen, da dies die optimalste und performanteste Art und Weise ist, und man sich um die Architektur des Rechners keine Gedanken machen muss.
Aber immer dann, wenn man binäre Daten mit anderen Rechnern austauschen muss, deren Architektur man nicht kenn, empfiehlt es sich ein einheitliches Speicherformat zu verwenden. So verwendet beispielsweise die Klasse AssocArray bei ihren Im- und Export-Funktionen PeekN und PokeN zur Darstellung aller Integer-Werte.

Funktionen

ppluint32 ppl7::Peek16 (const void *Adresse)
 16-Bit-Wert auslesen Mehr ...
 
ppluint32 ppl7::Peek24 (const void *Adresse)
 24-Bit-Wert auslesen Mehr ...
 
ppluint32 ppl7::Peek32 (const void *Adresse)
 32-Bit-Wert auslesen Mehr ...
 
ppluint64 ppl7::Peek64 (const void *Adresse)
 64-Bit-Wert auslesen Mehr ...
 
ppluint32 ppl7::Peek8 (const void *Adresse)
 8-Bit-Wert auslesen Mehr ...
 
float ppl7::PeekFloat (const void *Adresse)
 32-Bit-Float-Wert auslesen Mehr ...
 
ppluint32 ppl7::PeekN16 (const void *Adresse)
 16-Bit-Wert in Network-Byteorder auslesen Mehr ...
 
ppluint32 ppl7::PeekN32 (const void *Adresse)
 32-Bit-Wert in Network-Byteorder auslesen Mehr ...
 
ppluint64 ppl7::PeekN64 (const void *Adresse)
 64-Bit-Wert in Network-Byteorder auslesen Mehr ...
 
ppluint32 ppl7::PeekN8 (const void *Adresse)
 8-Bit-Wert in Network-Byteorder auslesen Mehr ...
 
void ppl7::Poke16 (void *Adresse, ppluint32 Wert)
 16-Bit-Wert schreiben Mehr ...
 
void ppl7::Poke24 (void *Adresse, ppluint32 Wert)
 24-Bit-Wert schreiben Mehr ...
 
void ppl7::Poke32 (void *Adresse, ppluint32 Wert)
 32-Bit-Wert schreiben Mehr ...
 
void ppl7::Poke64 (void *Adresse, ppluint64 Wert)
 64-Bit-Wert schreiben Mehr ...
 
void ppl7::Poke8 (void *Adresse, ppluint32 Wert)
 8-Bit-Wert schreiben Mehr ...
 
void ppl7::PokeFloat (void *Adresse, float Wert)
 32-Bit-Float-Wert schreiben Mehr ...
 
void ppl7::PokeN16 (void *Adresse, ppluint32 Wert)
 16-Bit-Wert in Network-Byteorder schreiben Mehr ...
 
void ppl7::PokeN32 (void *Adresse, ppluint32 Wert)
 32-Bit-Wert in Network-Byteorder schreiben Mehr ...
 
void ppl7::PokeN64 (void *Adresse, ppluint64 Wert)
 64-Bit-Wert in Network-Byteorder schreiben Mehr ...
 
void ppl7::PokeN8 (void *Adresse, ppluint32 Wert)
 8-Bit-Wert in Network-Byteorder schreiben Mehr ...
 

Dokumentation der Funktionen

ppluint32 ppl7::Peek16 ( const void *  Adresse)
Beschreibung:
Die ersten 16 Bit der angegebenen Adresse werden im Little-Endian-Format ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint32 ppl7::Peek24 ( const void *  Adresse)
Beschreibung:
Die ersten 24 Bit der angegebenen Adresse werden im Little-Endian-Format ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint32 ppl7::Peek32 ( const void *  Adresse)
Beschreibung:
Die ersten 32 Bit der angegebenen Adresse werden im Little-Endian-Format ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint64 ppl7::Peek64 ( const void *  Adresse)
Beschreibung:
Die ersten 64 Bit der angegebenen Adresse werden im Little-Endian-Format ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint32 ppl7::Peek8 ( const void *  Adresse)
Beschreibung:
Die ersten 8 Bit der angegebenen Adresse werden im Little-Endian-Format ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
float ppl7::PeekFloat ( const void *  Adresse)
Beschreibung:
Die ersten 32 Bit der angegebenen Adresse werden im Little-Endian-Format ausgelesen und als Float-Wert zurückgegeben.
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint32 ppl7::PeekN16 ( const void *  Adresse)
Beschreibung:
Die ersten 16 Bit der angegebenen Adresse werden im Big-Endian-Format (Network-Byteorder) ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint32 ppl7::PeekN32 ( const void *  Adresse)
Beschreibung:
Die ersten 32 Bit der angegebenen Adresse werden im Big-Endian-Format (Network-Byteorder) ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint64 ppl7::PeekN64 ( const void *  Adresse)
Beschreibung:
Die ersten 64 Bit der angegebenen Adresse werden im Big-Endian-Format (Network-Byteorder) ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
ppluint32 ppl7::PeekN8 ( const void *  Adresse)
Beschreibung:
Die ersten 8 Bit der angegebenen Adresse werden im Big-Endian-Format (Network-Byteorder) ausgelesen und als Wert zurückgegeben
Parameter
AdresseSpeicheradresse, aus der gelesen werden soll
Rückgabe
Ausgelesener Wert
Siehe auch
Beschreibung von Peek und Poke
void ppl7::Poke16 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 16 Bit des Wertes werden in die angegebene Speicheradresse im Little-Endian-Format geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::Poke24 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 24 Bit des Wertes werden in die angegebene Speicheradresse im Little-Endian-Format geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::Poke32 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 32 Bit des Wertes werden in die angegebene Speicheradresse im Little-Endian-Format geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::Poke64 ( void *  Adresse,
ppluint64  Wert 
)
Beschreibung:
Die ersten 64 Bit des Wertes werden in die angegebene Speicheradresse im Little-Endian-Format geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::Poke8 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 8 Bit des Wertes werden in die angegebene Speicheradresse im Little-Endian-Format geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::PokeFloat ( void *  Adresse,
float  Wert 
)
Beschreibung:
Die Inhalt des Floats Wert wird in die angegebene Speicheradresse im Little-Endian-Format geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::PokeN16 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 16 Bit des Wertes werden in die angegebene Speicheradresse im Big-Endian-Format (Network-Byteorder) geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::PokeN32 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 32 Bit des Wertes werden in die angegebene Speicheradresse im Big-Endian-Format (Network-Byteorder) geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::PokeN64 ( void *  Adresse,
ppluint64  Wert 
)
Beschreibung:
Die ersten 64 Bit des Wertes werden in die angegebene Speicheradresse im Big-Endian-Format (Network-Byteorder) geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke
void ppl7::PokeN8 ( void *  Adresse,
ppluint32  Wert 
)
Beschreibung:
Die ersten 8 Bit des Wertes werden in die angegebene Speicheradresse im Big-Endian-Format (Network-Byteorder) geschrieben. Es spielt keine Rolle, ob die CPU des Rechners mit Little- oder Big-Endian arbeitet.
Parameter
AdresseSpeicheradresse, in die geschrieben werden soll
WertWert, der gespeichert werden soll
Siehe auch
Beschreibung von Peek und Poke