Mit dem nächsten Code:Ich verstehe nicht struct.unpack
shmem = mmap.mmap(0, 20, "MumbleLink", mmap.ACCESS_READ)
print("size: "+str(struct.calcsize("IL3f3f3f512s3f")))
print(struct.unpack("IL3f3f3f512s3f", shmem))
ich diese Ausgabe:
size: 568
Traceback (most recent call last):
File "C:\Users\Saelyth\Desktop\test.py", line 8, in <module>
print(struct.unpack("IL3f3f3f512s3f", shmem))
struct.error: unpack requires a bytes object of length 568
Warum tut es mir sagt, dass es ein Objekt mit einer Länge von 568 erfordert, wenn calcsize sagt, es ist schon 568?
auch wert zu erwähnen, dass ich gewesen war googeln (und geprüft This) auf eine Antwort von dem, was ist IL3f3f3f512s3f oder wie können Sie Ihre eigene Zeichenfolge lesen Speicher von 1024 zum Beispiel erstellen, nicht 568, aber so Bis jetzt hatte ich kein Glück. Eine detaillierte Antwort, wie dieser Teil von struct funktioniert, würde mir helfen oder mir in die richtige Richtung zeigen, wie ich die Zeichenfolge berechnen kann, die ich zum Entpacken von shmem brauche.
Dies steht im Zusammenhang mit This Frage.
Welche Version von Python? Py2 behandelt mmaps als Strings, Py3 als Bytearrays –