//有亲缘关系的进程之间的匿名内存共享
#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;
}
POSIX中有亲缘关系的进程之间的匿名内存共享的简单实例
最新推荐文章于 2022-12-13 22:11:27 发布