您的位置:首页 > 其它

POSIX中有亲缘关系的进程之间的匿名内存共享的简单实例

2016-01-22 17:12 351 查看
//有亲缘关系的进程之间的匿名内存共享

#include <unistd.h>
#include <sys/mman.h>
#include <iostream>

using namespace std;

int main(int argc, const char* argv[]) {

int* p = (int*)mmap(NULL, sizeof(int), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, 0, 0);

if(MAP_FAILED == p) {
std::cout << "mmap fail" << std::endl;
exit(-1);
}

if(0 == fork()) {
*p = getpid();
std::cout << "child:" << getpid() << std::endl;
exit(0);
}

sleep(1);
std::cout << "parent:" << getpid() << " " << "child:" << *p << std::endl;

munmap(p, sizeof(int));

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内存共享