社区
Linux/Unix社区
帖子详情
请问如何读写共享内存!(麻烦大侠们了)
dennis80
2004-12-17 08:52:54
在共享内存已经建立且已经边接起来后如何去读写呢,比如:我在共享内存想存入15个数据,如何存入呢,又怎样才能读出来指定的数据库,麻烦大侠给点指导,分不够,再加。
...全文
225
7
打赏
收藏
请问如何读写共享内存!(麻烦大侠们了)
在共享内存已经建立且已经边接起来后如何去读写呢,比如:我在共享内存想存入15个数据,如何存入呢,又怎样才能读出来指定的数据库,麻烦大侠给点指导,分不够,再加。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
core
2004-12-17
打赏
举报
回复
共享内存其实就是一块内存地址,只不过其它的进程也可能存取罢了
shmat得到的就是首地址的指针,你把它认为是malloc出来的也没关系,一样用了
yanedanny
2004-12-17
打赏
举报
回复
用结构呀!
hoyt
2004-12-17
打赏
举报
回复
你将指针转换为int,然后访问
就和上面说的 p_map = (people*)shmat(shm_id,NULL,0);
然后 printf( "age %d\n",(*(p_map+i)).age );
的一样
欢迎访问我的个人网站 www.linuxc.net
dennis80
2004-12-17
打赏
举报
回复
如果共享内存中有INT的也其它的类型的情况下怎么办
tengulre
2004-12-17
打赏
举报
回复
我是在www-900.ibm.com看到的.>_<
tengulre
2004-12-17
打赏
举报
回复
/***** testwrite.c *******/
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
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");
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<10;i++)
{
temp+=1;
memcpy((*(p_map+i)).name,&temp,1);
(*(p_map+i)).age=20+i;
}
if(shmdt(p_map)==-1)
perror(" detach error ");
}
/********** testread.c ************/
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
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<10;i++)
{
printf( "name:%s\n",(*(p_map+i)).name );
printf( "age %d\n",(*(p_map+i)).age );
}
if(shmdt(p_map) == -1)
perror(" detach error ");
}
hbcb
2004-12-17
打赏
举报
回复
用结构来读写比较简单
C# For Unity系列之入门篇
你想当“李逍遥”式的“
大侠
”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!...
VC数据库编程总结(二)
非常详尽地介绍了VC中数据库编程的各种方法,
大侠
们长期经验的总结,不可多得的文章。
(5)mifare卡
读写
器开发心得『转』--整理重发贴
大虾们小虾们救命啊!! 发信人: zhaiyu 发表时间: 2003-01-17 11:45:24 -------------------------------------------------------------------------------- 我的是:ZHAI_YU@21CN.COM ...
Facebook TSDB论文翻译
by 蚂蚁金服 鬼步 2017.03.21 本文为Facebook官方论文的翻译,原文...特别感谢阿里巴巴 叶翔、悠你、兴博 等
大侠
们的帮助 如在阅读过程中发现内容有误请与我联系 6623662005@163.com 概要 大型互联网服务一...
并发模型与分布式系统的相似性
这个方案看起来很好,但是
读写
磁盘是非常
麻烦
的,所以可想而知,执行效果也是堪忧。 比如,一个永久化即存储在磁盘上的LinkedList在首部添加了一个新元素,并返回新元素的引用,但是其它线程仍然保持之前首部元素...
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章