当前位置: 首页 > news >正文

linux高级学习9

24.9.6学习目录

  • 一.共享内存
    • 1.共享内存的API

一.共享内存

特点:

  • 其在进程间共享数据的方法中是最快的
  • 要注意对给定存储区访问时进行互斥

1.共享内存的API

(1)获取共享内存标识符
在shell中使用
ipcs -m进行查看共享内存
ipcrm -m shmid删除共享内存

#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key,size_t size,int shmflg);

key:IPC键值
size:共享内存的大小
shmflg:标识函数行为及共享内存的权限
   IPC_CREAT:如果不存在就创建
   IPC_EXCL:如果已经存在则返回失败
   位或权限位:共享内存位或权限位后可以设置共享内存的访问权限。

(2)虚拟内存和物理内存的映射

#include <sys/types.h>
#include <sys/shm.h>
void *shmat(int shmid,const void *shmaddr,int shmflg);

shmid:共享内存标识符
shmaddr:共享内存映射地址,推荐位NULL
shmflg:共享内存段的访问权限和映射条件
   0:共享内存具有可读可写权限
   SHM_RDONLY:只读
   SHM_RND:只有当shmaddr非空才有效;

(3)解除当前进程的映射关系

#include <sys/types.h>
#include <sys/shm.h>
//将共享内存映射地址添加到其中进行解除
int shmdt(const void *shmaddr);

(4)共享内存控制

#include <sys/types.h>
#include <sys/shm.h>
int shmctl(int shmid,int cmd,struct shmid_ds *buf);

shmid:共享内存标识符
cmd:函数功能的控制
   IPC_RMID:删除
   IPC_SET:设置shmid_ds参数
   IPC_STAT:保存shmid_ds参数
   SHM_LOCK:锁定共享内存段
   SHM_UNLOCK:解锁共享内存段

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NAT技术+代理服务器+内网穿透
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • ASP.Net Core 因集成WebSocket导致Swagger UI显示错误
  • 11. MyBatis的一级缓存和二级缓存有什么区别?如何配置和使用二级缓存?
  • redis之缓存淘汰策略
  • 『功能项目』项目优化 - 默认管线转URP【31】
  • vue如何实现路由缓存
  • 7.统一网关-Gateway
  • 解决Pynput不能在Ubuntu22.04上正常使用问题
  • 百度飞将 paddle ,实现贝叶斯神经网络 bayesue neure network bnn,aistudio公开项目 复现效果不好
  • Oracle SQL和PL/SQL中SQL%ROWCOUNT和SQL%FOUND属性
  • STM32
  • 【Linux】冯诺依曼概念以及操作系统基础概念
  • Hadoop 下载
  • 集运系统需要与哪些硬件设备集成?
  • 收藏网友的 源程序下载网
  • EOS是什么
  • node和express搭建代理服务器(源码)
  • SpriteKit 技巧之添加背景图片
  • uni-app项目数字滚动
  • 代理模式
  • 对JS继承的一点思考
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 力扣(LeetCode)965
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端代码风格自动化系列(二)之Commitlint
  • 区块链分支循环
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 深度学习中的信息论知识详解
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • ​比特币大跌的 2 个原因
  • # centos7下FFmpeg环境部署记录
  • #NOIP 2014# day.2 T2 寻找道路
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (007)XHTML文档之标题——h1~h6
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (pojstep1.3.1)1017(构造法模拟)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (汇总)os模块以及shutil模块对文件的操作
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (算法)硬币问题
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转载)从 Java 代码到 Java 堆
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .aanva
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .Net的C#语言取月份数值对应的MonthName值
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth