免费注册 查看新帖 |

Chinaunix

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

如何在共享存储段中建立一个数据对象链接列表 apue习题15.13 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2009-08-06 09:48 |显示全部楼层
个人做法:
1,分配足够大小的共享内存
2,写一个共享内存的分配函数,记录内存用了多少、还剩多少,返回剩余的首地址
3,作用该分配函数动态的生成链表

论坛徽章:
0
2 [报告]
发表于 2009-08-06 10:22 |显示全部楼层
共享内存的分配函数不复杂:
struct TShmAlloc
{
        int                 used;
        int                total;                //total usable byte
        void        *pstart;        //start address
        void        *pcurr;                //current position
};
struct TShmAlloc tShmAlloc={0};

void* ShmAlloc(int size)
{
        if( size<=0 )
                size = 1;

        if( size > tShmAlloc.total - tShmAlloc.used )
        {
                abort();        //died yourself.
        }

        void *pret        = tShmAlloc.pcurr;

        tShmAlloc.pcurr                += size;
        tShmAlloc.used                += size;

        return pret;
}

论坛徽章:
0
3 [报告]
发表于 2009-08-06 11:42 |显示全部楼层
这样也可以,也可以有共享内存的顶部放置一些索引结构,访问共享内存中分配的具体结构。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP