36 lines
969 B
C++
36 lines
969 B
C++
#include <cstdlib>
|
||
#include <cstdio>
|
||
#include "SharedMemory.h"
|
||
|
||
//Shared-Memory-Segment erstellen oder öffnen – shmget()
|
||
void shared_memory_init(){
|
||
memory_id = shmget(IPC_PRIVATE, SHMMAXSIZE, IPC_CREAT | IPC_EXCL);
|
||
if(memory_id<0){
|
||
perror("Fehler bei der Erstellung des gemeinsamen Speicher");
|
||
exit(1);
|
||
}
|
||
}
|
||
|
||
//Shared-Memory-Segment id weiterreichen
|
||
int get_shared_memory_id(){
|
||
return memory_id;
|
||
}
|
||
|
||
//Ein Shared-Memory-Segment abfragen, ändern oder löschen – shmctl()
|
||
void delet_shared_memory(){
|
||
memory_id = shmctl(memory_id, IPC_RMID, 0);
|
||
}
|
||
|
||
//Shared-Memory-Segment an einen Prozess anbinden (attach) – shmat()
|
||
void attach_process(void *myProcess){
|
||
if(( myProcess = shmat( memory_id, (char *)0, 0 )) < (char *)0 ){
|
||
perror("Fehler beim Ankoppeln des gemeinsamen Speicher Segments");
|
||
exit(-1);
|
||
}
|
||
}
|
||
|
||
//Ein Shared-Memory-Segment loslösen – shmdt()
|
||
void release_memory(){
|
||
int shmdt(void *myProcess);
|
||
}
|