当前位置:网站首页>共享内存 - 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对应的文件,重新创建并分配更大内存,才能满足。
边栏推荐
- 【MySQL】ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
- How to set the explosion rate of legendary humanoid?Humanoid increase tutorial
- iMedicalLIS监听程序(1)
- 深度解析C语言文件操作以及常见问题
- 使用云服务器从0开始搭建云端Jupyter Lab|Notebook
- leetcode linked list topic
- 多人协作开发出现代码冲突,如何合并代码?
- 【论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning
- 简单了解单例模式
- 带你了解一下PHP搭建的电商商城系统
猜你喜欢
随机推荐
iMedicalLIS监听程序(1)
Vscode builds ESP32-C3 development environment
Still developing SMS verification code login?Try it (one-click login with your phone number)
【LeetCode】Day106-单词规律
开关电源-LLC基本原理
【模板引擎】微服务学习笔记六:freemarker模板引擎的常用命令介绍
如何使用MISRA改进嵌入式编程
Leetcode67. 二进制求和
How to Improve Embedded Programming with MISRA
从零开发一款相机APP, Day03: Camera 常用api和最新框架介绍
PAT 甲级 A1021 Deepest Root
PytestFixture实战应用+Pytest.ini与conftest.py应用详解+Fixture及yield实现用例前置后置
Hash table implementation code
在金融服务行业数字化转型中,低代码值得被关注
十种实现延迟任务的方案
马尔可夫跳变线性系统最优控制的研究现状与进展
中国电信首发全新加密通话产品!有效防止网络监听
IJCAI 2022 outstanding papers published, China won two draft in 298 the first author
FPGA刷题——跨时钟域传输(FIFO+打拍+握手)
【论文阅读】Anomaly Detection in Video via Self-Supervised and Multi-Task Learning