码迷,mamicode.com
首页 > 其他好文 > 详细

一个共享内存的例子

时间:2014-09-17 15:07:42      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   for   div   sp   log   on   c   

#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;
	}
}

  这个例子可以直观的看到如何将一个对象放进共享内存,就是把共享内存所指向的那一段空间转成我们的对象所存放的结构,然后就可以操作了。

一个共享内存的例子

标签:blog   io   os   for   div   sp   log   on   c   

原文地址:http://www.cnblogs.com/dy-techblog/p/3977086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!