首页 > 代码库 > 一个共享内存的例子
一个共享内存的例子
#include <iostream>#include <sys/shm.h>using namespace std;class Test{private: int status;public: Test():status(0){} Test(const int& s):status(s){} void init(){status = 0;} int getStatus(){ return status; } void setStatus(const int& s){ status = s; } };int main(){ key_t key; int shmid; key = ftok("/home/yu/shm/ipc",‘R‘); shmid = shmget(key,1024,IPC_CREAT|0604); int p = fork(); if(p>0) { sleep(2); cout<<"father wake up"<<endl; Test *t = (Test*)shmat(shmid,0,0); cout<<t->getStatus()<<endl; shmdt((void*)t); }else { Test *t = (Test*)shmat(shmid,0,0); t->init(); t->setStatus(200); cout<<"child set"<<endl; }}
这个例子可以直观的看到如何将一个对象放进共享内存,就是把共享内存所指向的那一段空间转成我们的对象所存放的结构,然后就可以操作了。
一个共享内存的例子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。