Hi all
I have a problem using managed_shared_memory , I can only read strings that
has size less that 16 characters.
This is my server code
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include
#include <utility>
#include <iostream>
int main ()
{
using namespace boost::interprocess;
typedef std::pair FileState;
try{
shared_memory_object::remove("MySharedMemory");
managed_shared_memory segment(create_only, "MySharedMemory", 655360);
std::string str1 = "aaaaaaaaaaaaaaabbb";//client can only read <16 sized
strings
std::string str2 =
"baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
std::string str3 =
"caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
std::string *instance1 = segment.constructstd::string("1")(str1);
std::string *instance2 = segment.constructstd::string("2")(str2);
std::string *instance3 = segment.constructstd::string("3")(str3);
while(segment.get_num_named_objects() > 0)
std::cout<<"Memory is ready"<
#include <cstddef>
#include <utility>
#include <cassert>
#include <iostream>
#include <fstream>
int main (int argc, char *argv[])
{
using namespace boost::interprocess;
try{
managed_shared_memory segment(open_only, "MySharedMemory");
std::pair res;
int a = 1;
std::ostringstream oss;
oss<std::string (const_cast(oss.str().c_str()));
if(res.second != 0)
{
std::cout<<*(res.first)<std::string(const_cast(oss.str().c_str()));
}
}
catch(...){
shared_memory_object::remove("MySharedMemory");
throw;
}
shared_memory_object::remove("MySharedMemory");
return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Best Regards