当前位置:网站首页>共享内存 - shmget填坑记
共享内存 - shmget填坑记
2022-07-29 13:42:00 【偏安一隅,占山为王】
shmget设置的size值,不能大于最大值SHMMAX和小于最小值SHMMIN
且若是key值对应的段已经存在,那么后来使用shmget的size值要小于等于原来的值函
而后询问了一下那位程序猿,他设置的是20kB,个人是100kB,且他的设置为了开机启动,因此每次出错的都是我了,悲催!
/******************************************************************************
*函数名称:yg_init_mem_share
*功能描述: 初始化共享内存(用于存放地图校准数据)
*全局影响:无
*输入:
*输出:无
*返回值:0:成功 -1:发送失败
* 做者 日期 内容
* Jimmy 2018-10-16 建立
*
******************************************************************************/
void yg_init_mem_share(int size)
{
key_t key;
//int size = 1024*1024; //1M内存大小
//1. 建立共享内存
if(-1 == (key = ftok("/", 4)))
{
bv_loge("ftok failed [%d:%s]!", errno, strerror(errno));
bv_error_handle("ftok failed [%d:%s]!", errno, strerror(errno));
return ;
}
bv_logd("key=%#x!", key);
SHM_ID = shmget(key, (size_t)size, IPC_CREAT|0644);
if(-1 == SHM_ID)
{
bv_loge("Init the shared memory[%dKB] failed [%d:%s]!",size/1024, errno, strerror(errno));
bv_error_handle("Init the shared memory[%dKB] failed [%d:%s]!",size/1024, errno, strerror(errno));
}
else
{
bv_logd("Init the shared memory[%dKB] OK!", size/1000);
bv_file_log(g_tcp_fp, "Init the shared memory[%dKB] OK!", size/1000);
}
return ;
}上面是复制别人的,意思就是说,你先创建了一个KEY对应的文件,比如说是K1,现在程序运行时K1对应的内存SIZE是1000字节,后面你想扩大这个内存,直接修改分配的内存的话,最大还是1000字节,只有删掉K1对应的文件,重新创建并分配更大内存,才能满足。
边栏推荐
猜你喜欢

How to set the explosion rate of legendary humanoid?Humanoid increase tutorial

trivy如何从非关系型数据库查询数据

Leetcode65. 有效数字

线程池拒绝策略详解

程序员是职业病高发群体,别天真的以为只有秃头那么简单,才不是呢。

EA&UML日拱一卒-活动图::CallOperationAction(续)

程序员入门的第一个程序,打印输出 “ HelloWorld “

Super young!34-year-old professor, vice president of 985 Ace College!

frp-免费内网穿透

C#线程操作UI控件
随机推荐
【LeetCode】593. 有效的正方形
搞直播啦,千视超高清4K NDI编解码器8月3日19:00准时开播
3555. 二叉树
基于降噪自编码器与改进卷积神经网络的采煤机健康状态识别
Project Manager: Not bad!The SSO single sign-on code is written, and the sequence diagram is also drawn?
rk3399驱动添加电池adc开机检测功能
全开放式耳机怎么样?不塞耳朵的蓝牙耳机推荐
HCIP第十三天笔记(BGP的路由过滤、BGP的社团属性、MPLS)
企业需要知道的5个 IAM 最佳实践
Bika LIMS 开源LIMS集—— SENAITE的使用(分析/测试、方法)
尚硅谷大叔培训:揭秘Flink四种执行图——ExecutionGraph和物理执行图
How much do you know about futures contracts
【LeetCode】Day106-单词规律
PyQt5快速开发与实战 7.1 信号与槽介绍
PAT 甲级 A1021 Deepest Root
用TypeScript类型系统编程实现斐波那契数列
关于知识付费的一些思考
Gdb debugging common concepts finishing
human pose estimation-DEKR2021CVPR
Children's programming electronics (graphical programming Scratch secondary level exam parsing (choice) in June 2022