linux共享内存的创建与通讯实例
时间:2019-02-16
本文章向大家介绍linux共享内存的创建与通讯实例,主要包括linux共享内存的创建与通讯实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
创建共享内存,往共享内存里写入数据
#include<stdio.h>
#include<string.h>
#include<fcntl.h>
#include<stdlib.h>
#include<sys/ipc.h>
#include<sys/shm.h>
struct sys_data{
float data_rh;
float data_t;
};
int main(){
void* shm=(void*)0;
int shmid;
struct sys_data *da=0;
float ftemp=0.0,fhumi=0.0;
shmid=shmget((key_t)8891,sizeof(struct sys_data),0666|IPC_CREAT); //创建共享内存
if(shmid == -1){
printf("shmget error\n");
exit(-1);
}else{ printf("shmid = %d\n",shmid);}
shm = shmat(shmid,(void*)0,0); //映射共享内存
if(shm == (void*)(-1)){
printf("shmat error\n");
exit(-1);
}
da = shm;
while(1){
ftemp = rand()%100;
fhumi= rand()%100;
da->data_t=ftemp;
da->data_rh=fhumi;
sleep(1);
}
}
~
将写入共享内存的内容打印出来
#include<stdio.h>
#include<string.h>
#include<fcntl.h>
#include<stdlib.h>
#include<sys/ipc.h>
#include<sys/shm.h>
struct sys_data{
float data_rh;
float data_t;
};
int main(){
void* shm=(void*)0;
int shmid;
struct sys_data *da=0;
float ftemp=0.0,fhumi=0.0;
shmid=shmget((key_t)8891,sizeof(struct sys_data),0666|IPC_CREAT);
if(shmid == -1){
printf("shmget error\n");
exit(-1);
}else{ printf("shmid = %d\n",shmid);}
shm = shmat(shmid,(void*)0,0);
if(shm == (void*)(-1)){
printf("shmat error\n");
exit(-1);
}
da = shm;
while(1){
sleep(1);
printf("temp=%.1f,humi=%.1f\n",da->data_t,da->data_rh);
}
return 0;
}
~
- Universe入门
- 分享一款值得分享的写作工具
- 微信二次开发Java自定义菜单事件实现
- 微信OAuth授权获取用户OpenId-JAVA(个人经验)
- 【手写文字识别】-JavaAPI示例代码
- 【Python3-API】情感倾向分析示例代码
- SpringMVC+Hibernate +MySql+ EasyUI实现CRUD(一)
- 【Python3-API】通用文字识别示例代码
- Python入门教程之安装MyEclipse插件和安装Python环境
- AutoFlowLayout-多功能流式布局与网格布局控件
- RBAC新解:基于资源的权限管理(Resource-Based Access Control)
- 基于开源项目搭建属于自己的技术堆栈
- Redis整合Spring项目搭建实例
- SpringMVC+Hibernate +MySql+ EasyUI实现POI导出Excel(二)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法