消息队列在linux下实现进程间的通信;消息盒子在单片机中的代码实现
消息队列是进程间通信的一种方式。
== 首先介绍下消息盒子在单片机中的代码实现==
#include<stdio.h>
struct message_t
{int integer;int decimal[32];
};
struct message_t message;/** 32位位码 */
int Bit_Map32[32] =
{0x00000001, 0x00000002, 0x00000004, 0x00000008,0x00000010, 0x00000020, 0x00000040, 0x00000080,0x00000100, 0x00000200, 0x00000400, 0x00000800,0x00001000, 0x00002000, 0x00004000, 0x00008000,0x00010000, 0x00020000, 0x00040000, 0x00080000,0x00100000, 0x00200000, 0x00400000, 0x00800000,0x01000000, 0x02000000, 0x04000000, 0x08000000,0x10000000, 0x20000000, 0x40000000, 0x80000000,
};
int put_message(int message_id)
{message.integer |= Bit_Map32[message_id / 32];message.decimal[message_id / 32] = message_id % 32;
}int get_message(struct message_t *message)
{int message_id = 0;//消息号默认为0int temp = 0;int i = 0;if (message->integer & 0xFF) //当有消息是都要处理。{ for (i = 0; i < 256; i++){if (message->integer & Bit_Map32[i]){temp = i;temp <<= 5;message->integer &= ~Bit_Map32[i];return message_id = temp + message->decimal[i];}}}return message_id;
}int main()
{int msg1 = 6;int msg2 = 254;int msg = 0;put_message(msg1);//输入消息号put_message(msg2);//输入消息号//输出所有的消息号while ((msg = get_message(&message)) != 0){printf("%d\n", msg);}system("pause");return 0;
}
消息队列在linux下实现进程间的通信;消息盒子在单片机中的代码实现相关推荐
- linux 环境下的进程间的通信——消息队列传输结构体
linux 环境下的进程间的通信方式主要有:管道,有名和无名管道, 这种方式适用于具有亲缘关系的进程之间的通信: 信号: 消息队列: 共享内存: 信号量: 套接字: 这次主要涉及消息队列: 1. 需要 ...
- Linux之本地进程间Socket通信
文章目录 一.Sokcet 二.Sokcet API (一).sockaddr 结构: (二).struct socketaddr_in : (三).Struct socketaddr_un (四). ...
- 深刻理解 Linux 进程间七大通信(IPC)
前言 网络编程是 Linux C/C++的面试重点,今天我就来聊一聊进程间通信的问题,文章末尾列出了参考资料,希望帮助到大家. 篇幅有点长,希望大家耐心阅读. Linux 下的进程通信手段基本上是从 ...
- linux 消息队列_Linux进程间通信第六讲 标准IPC之消息队列
来源CSDN: CSDN-专业IT技术社区-登录blog.csdn.net 一.概念和原理 消息队列是另一种标准IPC,当然也大概遵循大部分标准 消息队列,它是存放消息(数据)的队列,而队列是先进先 ...
- Linux进程间通讯之消息队列
首先有个大体的概念:http://www.xefan.com/archives/83703.html 头文件: #include <sys/ipc.h> #include <sys/ ...
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...
- Linux第二次试验:Linux下的进程通信实验
Linux第二次试验:Linux下的进程通信实验 前言 一.实验目的 二.实验工具与设备 三.实验预备知识 三.实验内容和步骤 五.实验代码及步骤截图 六.实验总结 前言 为了帮助同学们完成痛苦的实验 ...
- 【C/C++ Windows编程】Windows系统消息、Qt消息事件、linux下kill信号
Windows系统消息 文章目录 Windows系统消息 前言 一.什么是窗口? 二.什么是消息? 消息分类: windows消息机制架构图: 函数说明 消息结构体 GetMessage Transl ...
- linux下的进程创建,Linux下进程的创建
这篇文章主要是讲解到Linux进程的控制,包括程序和进程.守护进程.守护进程的出错处理. 1.程序和进程 程序(program)是存放在磁盘文件中的可执行文件,程序的执行实例被称为进程(process ...
- Linux下不同服务器间数据传输
因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...
最新文章
- MVC - 17.OA项目
- 面试官问:能否模拟实现JS的new操作符
- mysql crc16_MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
- js detect the type of device
- hp ux安装oracle 11g,HP UX安装oracle 11g asm扫不到盘
- asp.net core发布后无法访问
- 51nod 1051 最大子矩阵和 【最大子段和DP变形/降维】
- rest风格使用两个变量_SpringBoot2.x系列教程|构建RESTful风格的API接口
- linux管理进程的数据结构,Linux 进程运行的各项指标的监测和一些管理命令的应用...
- bertram_Bertram
- 米勒拉宾算法——素性测试
- 服务器安装系统要如何载入驱动程序,Dell 服务器安装Windows 2008 R2时手动加载阵列卡驱动...
- 20230326作业
- 保险私有云 IaaS 资源池选型与演进之路 | SmartX 客户实践
- 电子合同印章大小和位置调整
- 微信小程序如何转云开发
- @Component与@Configuration区别
- IDEA推送项目到gitee上,拉取gitee项目到IDEA中
- 安卓远程连接linux软件,推荐Windows、Linux安卓远程软件
- 【剑指Offer】个人学习笔记_46_把数字翻译成字符串
热门文章
- LaTeX中实心圆点列表的一点经验
- 小学-知识与能力【7】
- 计算机用word做贺卡,运用Word制作电子贺卡教学设计
- 2021年等保2.0工作必须了解的40个问题汇总
- 主页被锁定为 hao.360.cn
- 海底捞无人餐厅上线,万人失业潮又要到来?
- css3中transform:translateY之后文字模糊的原因
- mysql查询之左连接查询与右连接查询
- java路径的上一级_java路径两种写法/和\\以及 ./和../以及/之间的区别?
- python制作气温分布图_基于Python的多种形式气温分布图自动绘制