Forum: PC-Programmierung Kopie eines Pointers der auf eine shared memory zeigt


von Stefan (Gast)


Lesenswert?

Hallo zusammen. Möglicherweise ist die Lösung sehr banal, aber ich hab 
es bis jetzt noch nicht rausgefunden.

Ich habe einen Pointer ptr den ich mittels shmat auf die shared memory 
eingehängt habe. Jetzt brauche ich aber eine echte Kopie von von dem 
Ganzen. Wie mache ich das?

Lg
Stefan

von Michael F. (startrekmichi)


Lesenswert?

Wenn du die Daten kopieren willst, die im SHM stehen, geht das am 
einfachsten mit
memcpy(dest, source, size);

von Stefan (Gast)


Lesenswert?

irgendetwas mach ich falsch!

sollte doch so passen oder?
1
char *copy, *ptr;
2
int shmid;
3
4
shmid = shmget(2021, 10, IPC_CREAT | PERMISSION)
5
6
ptr = shmat(shmid, 0, 0);
7
8
memcpy(copy, ptr, sizeof(char)*10);

von casud (Gast)


Lesenswert?

Vor dem memcpy fehlt noch ein char * copy = malloc(10);

von Stefan (Gast)


Lesenswert?

funktioniert einwandfrei...vielen dank

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
Noch kein Account? Hier anmelden.