shared-memory/src/SharedMemory.cpp

46 lines
1.2 KiB
C++
Raw Normal View History

2019-10-23 21:39:09 +02:00
#include <cstdlib>
2019-11-06 13:07:33 +01:00
#include <sys/ipc.h>
#include <sys/shm.h>
2019-10-19 17:12:14 +02:00
#include "SharedMemory.h"
2019-11-06 13:07:33 +01:00
#include <iostream>
#define Max_Memory_Size 8000
2019-10-19 17:12:14 +02:00
2019-11-06 13:07:33 +01:00
int memoryAccessKey = 12345;
int memID;
//Shared-Memory-Segment erstellen oder öffnen shmget()
2019-11-06 13:07:33 +01:00
void sharedMemoryInit()
{
if((memID = shmget(memoryAccessKey, Max_Memory_Size, IPC_CREAT | IPC_EXCL | 0666)) < 0)
{
std::cerr << "Shared memory with Key: " << memoryAccessKey << " already exists. Delete by Hand before starting vKFM" << std::endl;
exit(0);
} else {
std::cout << "Shared memory with Key: " << memoryAccessKey << " allocated" << std::endl;
}
}
2019-11-06 13:07:33 +01:00
void deleteSharedMemory(int s)
{
if (shmctl(memID, IPC_RMID, NULL) < 0 )
{
std::cerr << "Failed to remove shared Memory, maybe not existing: try cmd: ipcs " << std::endl;
} else {
std::cout << "shared Memory deleted" << std::endl;
}
exit(0);
2019-10-20 20:38:12 +02:00
}
2019-11-06 13:07:33 +01:00
void deleteSharedMemory(void)
{
if (shmctl(memID, IPC_RMID, NULL) < 0 )
{
std::cerr << "Failed to remove shared Memory, maybe not existing: try cmd: ipcs " << std::endl;
} else {
std::cout << "shared Memory deleted" << std::endl;
2019-10-20 20:38:12 +02:00
}
2019-11-06 13:07:33 +01:00
exit(0);
2019-10-20 20:38:12 +02:00
}
2019-11-06 13:07:33 +01:00