Giriş
Şu satırları dahil ederiz.
Constructor
shared_memory_object verilir. Şöyle yaparız
Örnek
Şöyle yaparız.
Elimizde şöyle bir yapı olsun.
Şöyle yaparız.
Şu satırları dahil ederiz.
#include <boost/interprocess/mapped_region.hpp>
#include <boost/interprocess/shared_memory_object.hpp>
Bu nesne yok olunca uygulamaya dahil edilen shared memory alanına erişimimiz de yok olur. Dolayısıyla bu nesne genellikle global bir şekilde veya yok olmayacak bir üye alan olarak tutulur.Constructor
shared_memory_object verilir. Şöyle yaparız
bip::shared_memory_object sharedObj = ...;
...
bip::mapped_region mappedObj (sharedObj,bip::read_write);
get_address metoduÖrnek
Şöyle yaparız.
int const* p = reinterpret_cast<int const*>(reg.get_address());
ÖrnekElimizde şöyle bir yapı olsun.
struct SharedData {
bip::interprocess_semaphore sem;
int data;
bool newData;
SharedData() : sem(1), newData(false) {}
};
Şöyle yaparızSharedData* sd = (SharedData*)mappedObj.get_address();
Şöyle yaparız.auto sd = static_cast<SharedData *>(mappedObj.get_address());
Bu bellekte bir nesne yaratmak istersek şöyle yaparız.SharedData *sd = new (mappedObj.get_address()) SharedData;
get_size metodu
Şöyle yaparız.
bi::shared_memory_object shm(bi::open_only, SHM_NAME, bi::read_only);
bi::mapped_region reg(shm, bi::read_only, 0);
size_t N = reg.get_size();
Hiç yorum yok:
Yorum Gönder