社区
Linux/Unix社区
帖子详情
请问如何读写共享内存!(麻烦大侠们了)
dennis80
2004-12-17 08:52:54
在共享内存已经建立且已经边接起来后如何去读写呢,比如:我在共享内存想存入15个数据,如何存入呢,又怎样才能读出来指定的数据库,麻烦大侠给点指导,分不够,再加。
...全文
268
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
打赏
举报
回复
用结构来读写比较简单
【无人机路径规划】实现有效的水陆两栖无人机任务规划和执行(Matlab实现)(含粒子群优化和遗传算法)
内容概要:本文围绕水陆两栖无人机的任务规划与执行问题,提出了一种基于Matlab实现的智能路径规划解决方案,重点融合粒子群优化算法(PSO)与遗传算法(GA)进行三维环境下的避障路径规划。研究系统性地构建了从复杂地形建模、任务需求分析到算法设计与仿真实验的完整流程,实现了在多约束、动态障碍物等复杂环境下无人机的高效任务调度。通过对GA与PSO两种智能优化算法在路径长度、收敛速度、路径平滑度及稳定性等方面的对比分析,深入探讨了各自在无人机路径规划中的适用场景与性能差异,验证了所提方法在提升任务执行效率与安全性方面的有效性。该方案不仅适用于水陆交互通用场景,也为多模态无人系统自主导航提供了可扩展的技术框架。; 适合人群:具备一定Matlab编程能力和算法基础,从事无人机路径规划、智能优化算法研究、自动化控制或相关领域科研工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于水陆两栖无人机在复杂自然环境(如江河湖海与陆地交错区域)中的自主巡航与任务执行;②比较遗传算法与粒子群算法在三维动态路径规划中的优化性能,指导实际工程中算法选型;③为多约束条件下无人系统的自主决策与实时避障提供算法支持与仿真验证平台。; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点关注两种算法的数学建模过程、适应度函数设计、参数调优策略及路径生成逻辑,通过仿真实验直观对比算法性能差异,深入理解智能优化算法在复杂路径规划问题中的应用机制与优化潜力。
人工智能 +大模型 + AI 女友对话交互系统 + 完整源码
【内容概要】本资源为 AI 虚拟女友对话交互完整项目源码,基于大语言模型搭建拟人化聊天对话功能,支持多轮情感对话、人设自定义、情感回复生成,配套完整部署文档与注释代码。
字符转换工具,从excel复制的列可以自定义符号拼接
字符串拼接工具
QNX\QNX-Momentics-IDE教程
打开链接下载源码: https://pan.quark.cn/s/7b00740c8cd9 关于QNX Momentics_IDE的操作指南,涵盖所需达成的基本资格以及详细的应用流程。
实用代码脚本易语言源码部品管理模块
实用代码脚本易语言源码部品管理模块
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章