免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 680 | 回复: 0
打印 上一主题 下一主题

ZT:Linux的共享内存技术 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-17 10:04 |只看该作者 |倒序浏览
http://www.gbunix.com/htmldata/2006_07/14/20/article_1339_1.html
Linux的共享内存技术
                     
                    
                    
                     
                                 
                                    
                                      
                                    
                                 
                        
源代码是从别人的文章中抄过来的,不是原创,不过写得不错,主要是描述两个不同的进程从共享内存中存取数据的技术,我加了点分析:
第一个是写数据:
/***** testwrite.c *******/
#include
#include
#include
#include
typedef struct{
        char name[4];
        int age;
} people;
main(int argc, char** argv)
{
        int shm_id,i;
        key_t key;
        char temp;
        people *p_map;
        char* name = "/dev/shm/myshm2";
        key = ftok(name,0);
        if(key==-1)
                perror("ftok error");
/*先用ftok创建一个key,再调用shmget,创建一块共享内存区域*/
        shm_id=shmget(key,4096,IPC_CREAT);        
        if(shm_id==-1)
        {
                perror("shmget error");
                return;
        }
/*将这块共享内存区附加到自己的内存段*/
        p_map=(people*)shmat(shm_id,NULL,0);
        temp='a';
        for(i = 0;i
#include
#include
#include
typedef struct{
        char name[4];
        int age;
} people;
main(int argc, char** argv)
{
        int shm_id,i;
        key_t key;
        people *p_map;
        char* name = "/dev/shm/myshm2";
        key = ftok(name,0);
        if(key == -1)
                perror("ftok error");
        shm_id = shmget(key,4096,IPC_CREAT);        
        if(shm_id == -1)
        {
                perror("shmget error");
                return;
        }
        p_map = (people*)shmat(shm_id,NULL,0);
        for(i = 0;i
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14014/showart_156577.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP