社区
Linux/Unix社区
帖子详情
请问如何读写共享内存!(麻烦大侠们了)
dennis80
2004-12-17 08:52:54
在共享内存已经建立且已经边接起来后如何去读写呢,比如:我在共享内存想存入15个数据,如何存入呢,又怎样才能读出来指定的数据库,麻烦大侠给点指导,分不够,再加。
...全文
246
7
打赏
收藏
请问如何读写共享内存!(麻烦大侠们了)
在共享内存已经建立且已经边接起来后如何去读写呢,比如:我在共享内存想存入15个数据,如何存入呢,又怎样才能读出来指定的数据库,麻烦大侠给点指导,分不够,再加。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
用结构来读写比较简单
(5)mifare卡
读写
器开发心得『转』--整理重发贴
发信人:biolink 发表时间:2003-01-14 11:27:52 -------------------------------------------------------------------------------- 条件: 所有扇区密码A都为 0xff,0xff,0xff,0xff,0xff,0xff. 复位,寻卡,碰撞,选卡已经成功 我还把 Mf500PiccA
VC数据库编程总结(二)
非常详尽地介绍了VC中数据库编程的各种方法,
大侠
们长期经验的总结,不可多得的文章。
Facebook TSDB论文翻译
by 蚂蚁金服 鬼步 2017.03.21 本文为Facebook官方论文的翻译,原文地址http://www.vldb.org/pvldb/vol8/p1816-teller.pdf 特别感谢阿里巴巴 叶翔、悠你、兴博 等
大侠
们的帮助 如在阅读过程中发现内容有误请与我联系 6623662005@163.com 概要 大型互联网服务一...
并发模型与分布式系统的相似性
并发模型与分布式系统的相似性 并发系统可以使用不同的并发模型实现。并发模型可以指定任务所需的线程数量。不同的模型有不同切分任务的方法和线程间的通信与交互。 本文中的并发模型与分布式系统中的使用的不同架构相类似。在并发系统中会线程间的交互,而分布式系统中有不同的处理进程交互。线程和进程非常相似,这可能是为什么不同并发模型和不同的分布式架构如此相似的...
1269道Java技术答疑,阿里技术专家帮你Java技术进阶
云栖社区邀请到6位Java技术专家帮开发者答疑解惑,其中精华的1269道问答已经整理出来,供大家学习! 如有Java相关问题,请向专家提问https://yq.aliyun.com/promotion/755 ,或者在云栖社区Java问答界面提问https://yq.aliyun.com/tags/type_ask-tagid_41 spring相关问...
Linux/Unix社区
23,215
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章