IPC 共享内存

来源:互联网 发布:highcharts.js 下载 编辑:程序博客网 时间:2024/04/28 00:14

IPC最快的是共享内存,因为共享内存的消息复制只有两次,一是从输入文件到共享内存,而是共享内存到输出设备;
框架:key=>申请对象=>映射对象=>读写对象=>撤销对象=>删除对象
for example:one progress to write;the other to read;
/write/
int main(int argc,const char *argv[])
{
key_t key =ftok(“./”,’!’);/系统建立IPC通讯 (消息队列、信号量和共享内存)时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。/
int id = shmget(key,4096,IPC_CREAT|0666);
void* p;
p = shmat(id,NULL,0);
char buf[] = “hello world!”;
memcpy(p,buf,strlen(buf)+1);
shmdt(p);/撤销映射/
return 0;
}
/read/
int main(int argc,const char* argv[])
{
key_t key = ftok(“./”,’!’);
int id = shmget(key,4096,IPC_CREAT|0666);
void* p;
p = shmat(id,NULL,0);
printf(“out: %s\n”,(char *)p);
shmctl(id,IPC_RMID,NULL);
shmdt(p);
return 0;
}

原创粉丝点击