How to use hash_map in shared memory
I want to do inter process communication using shared memory. In the shared memory I want to use hash_map. Is it possible to create hash_map in shared memory?
c++ windows stl shared-memory
add a comment |
I want to do inter process communication using shared memory. In the shared memory I want to use hash_map. Is it possible to create hash_map in shared memory?
c++ windows stl shared-memory
1
There is no standard C++ component calledhash_map
, so I guess you are using some particular library - you would need to consult the documentation for that library to see if it supports creating the map nodes in a particular area of memory.
– BoBTFish
Nov 13 '18 at 7:38
1
Are you using the original Standard Template Library? It's mostly obsolete these days, and basically all its functionality (and more) have been incorporated into the standard library. For examplehas_map
isstd::unordered_map
.
– Some programmer dude
Nov 13 '18 at 7:43
And if you usestd::unordered_map
then you need to provide a custom allocator that "allocates" memory from the shared memory, otherwise it will allocate from the heap and the data wont be shared. In general, dealing with dynamic structures of any kind is not trivial when used together with all kinds of IPC, especially shared memory.
– Some programmer dude
Nov 13 '18 at 7:45
3
Ifboost
is an option, you might want to look into boost::interprocess
– Gaurav Sehgal
Nov 13 '18 at 7:56
add a comment |
I want to do inter process communication using shared memory. In the shared memory I want to use hash_map. Is it possible to create hash_map in shared memory?
c++ windows stl shared-memory
I want to do inter process communication using shared memory. In the shared memory I want to use hash_map. Is it possible to create hash_map in shared memory?
c++ windows stl shared-memory
c++ windows stl shared-memory
asked Nov 13 '18 at 7:36
MrunalMrunal
647
647
1
There is no standard C++ component calledhash_map
, so I guess you are using some particular library - you would need to consult the documentation for that library to see if it supports creating the map nodes in a particular area of memory.
– BoBTFish
Nov 13 '18 at 7:38
1
Are you using the original Standard Template Library? It's mostly obsolete these days, and basically all its functionality (and more) have been incorporated into the standard library. For examplehas_map
isstd::unordered_map
.
– Some programmer dude
Nov 13 '18 at 7:43
And if you usestd::unordered_map
then you need to provide a custom allocator that "allocates" memory from the shared memory, otherwise it will allocate from the heap and the data wont be shared. In general, dealing with dynamic structures of any kind is not trivial when used together with all kinds of IPC, especially shared memory.
– Some programmer dude
Nov 13 '18 at 7:45
3
Ifboost
is an option, you might want to look into boost::interprocess
– Gaurav Sehgal
Nov 13 '18 at 7:56
add a comment |
1
There is no standard C++ component calledhash_map
, so I guess you are using some particular library - you would need to consult the documentation for that library to see if it supports creating the map nodes in a particular area of memory.
– BoBTFish
Nov 13 '18 at 7:38
1
Are you using the original Standard Template Library? It's mostly obsolete these days, and basically all its functionality (and more) have been incorporated into the standard library. For examplehas_map
isstd::unordered_map
.
– Some programmer dude
Nov 13 '18 at 7:43
And if you usestd::unordered_map
then you need to provide a custom allocator that "allocates" memory from the shared memory, otherwise it will allocate from the heap and the data wont be shared. In general, dealing with dynamic structures of any kind is not trivial when used together with all kinds of IPC, especially shared memory.
– Some programmer dude
Nov 13 '18 at 7:45
3
Ifboost
is an option, you might want to look into boost::interprocess
– Gaurav Sehgal
Nov 13 '18 at 7:56
1
1
There is no standard C++ component called
hash_map
, so I guess you are using some particular library - you would need to consult the documentation for that library to see if it supports creating the map nodes in a particular area of memory.– BoBTFish
Nov 13 '18 at 7:38
There is no standard C++ component called
hash_map
, so I guess you are using some particular library - you would need to consult the documentation for that library to see if it supports creating the map nodes in a particular area of memory.– BoBTFish
Nov 13 '18 at 7:38
1
1
Are you using the original Standard Template Library? It's mostly obsolete these days, and basically all its functionality (and more) have been incorporated into the standard library. For example
has_map
is std::unordered_map
.– Some programmer dude
Nov 13 '18 at 7:43
Are you using the original Standard Template Library? It's mostly obsolete these days, and basically all its functionality (and more) have been incorporated into the standard library. For example
has_map
is std::unordered_map
.– Some programmer dude
Nov 13 '18 at 7:43
And if you use
std::unordered_map
then you need to provide a custom allocator that "allocates" memory from the shared memory, otherwise it will allocate from the heap and the data wont be shared. In general, dealing with dynamic structures of any kind is not trivial when used together with all kinds of IPC, especially shared memory.– Some programmer dude
Nov 13 '18 at 7:45
And if you use
std::unordered_map
then you need to provide a custom allocator that "allocates" memory from the shared memory, otherwise it will allocate from the heap and the data wont be shared. In general, dealing with dynamic structures of any kind is not trivial when used together with all kinds of IPC, especially shared memory.– Some programmer dude
Nov 13 '18 at 7:45
3
3
If
boost
is an option, you might want to look into boost::interprocess– Gaurav Sehgal
Nov 13 '18 at 7:56
If
boost
is an option, you might want to look into boost::interprocess– Gaurav Sehgal
Nov 13 '18 at 7:56
add a comment |
1 Answer
1
active
oldest
votes
You can use the boost::interprocess
library. It supports interprocess communication through sharing and supports advanced concepts such as shared memory containers.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53276002%2fhow-to-use-hash-map-in-shared-memory%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use the boost::interprocess
library. It supports interprocess communication through sharing and supports advanced concepts such as shared memory containers.
add a comment |
You can use the boost::interprocess
library. It supports interprocess communication through sharing and supports advanced concepts such as shared memory containers.
add a comment |
You can use the boost::interprocess
library. It supports interprocess communication through sharing and supports advanced concepts such as shared memory containers.
You can use the boost::interprocess
library. It supports interprocess communication through sharing and supports advanced concepts such as shared memory containers.
answered Nov 13 '18 at 9:13
darunedarune
1,048516
1,048516
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53276002%2fhow-to-use-hash-map-in-shared-memory%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
There is no standard C++ component called
hash_map
, so I guess you are using some particular library - you would need to consult the documentation for that library to see if it supports creating the map nodes in a particular area of memory.– BoBTFish
Nov 13 '18 at 7:38
1
Are you using the original Standard Template Library? It's mostly obsolete these days, and basically all its functionality (and more) have been incorporated into the standard library. For example
has_map
isstd::unordered_map
.– Some programmer dude
Nov 13 '18 at 7:43
And if you use
std::unordered_map
then you need to provide a custom allocator that "allocates" memory from the shared memory, otherwise it will allocate from the heap and the data wont be shared. In general, dealing with dynamic structures of any kind is not trivial when used together with all kinds of IPC, especially shared memory.– Some programmer dude
Nov 13 '18 at 7:45
3
If
boost
is an option, you might want to look into boost::interprocess– Gaurav Sehgal
Nov 13 '18 at 7:56