
例子 | 环形队列来实现串口数据接收
对于从事编程工作的人来说,应该都学过数据结构,并且对队列这个概念有一定的了解。而环形队列是队列的一种特殊形式,它在实际应用中非常广泛。由于关于环形队列的内容已经有很多文章讨论,理论知识可以参考其他人的文章。这里我推荐一篇非常好的文章,名为《STM32进阶之串口环形缓冲区实现》,它详细介绍了如何使用STM32微控制器实现串口的环形缓冲区。

推荐一个资源占用极少的json解析器!
最近我在处理一位离职同事编写的代码,他的代码主要负责与云平台进行交互,并且使用标准的JSON格式进行通信。他采用了cJSON库来解析JSON数据。不幸的是,这位同事在防御性编程方面技术很差,很多地方没有进行必要的内存释放操作,也没有进行指针判空,直接使用了指针。在多线程环境中,这种做法非常危险。因此,当我和另一位同事接手这部分代码后,出现了大量的白屏和卡死等问题。经过一段时间的调试和定位,我们发现这些问题是由于代码编写不严谨所导致的。

实现一个高效率的内存拷贝函数memcpy
其功能是将src开始位置的n个字节数据复制到dest。如果dest中已经存在数据,将被覆盖。memcpy函数的返回值是dest的指针。memcpy函数定义在string.h头文件中。

Linux工作站加固的6个方法
就像我之前所提到的那样,安全就像是在公路上开车 – 比你慢的人都是白痴,比你快的人都是疯子。本文中介绍的准则只是一系列基本的核心安全规则,它们并不能涵盖所有方面,也无法替代经验、谨慎和常识。你需要根据你所在企业的环境稍作调整以适应这些建议。

教你关闭一个不活动的或者空闲的SSH会话
如何终止一个闲置的 SSH 会话?开始,可以利用 w 命令来检测闲置或空闲的 SSH 会话。然后,借助 pstree 命令获取闲置会话的进程 ID(PID)。最后,使用 kill 命令终止该会话。

关于嵌入式系统日志打印的一点建议
虽然现在的嵌入式设备配置越来越高,比如目前在创客圈比较流行且配置比较高的有Raspberry Pi、pcduino、Cubieboard、switf board、Beaglebone black、Edison和Galileo。与早期的PC相比,这些开发板的性能有了显著提升。一个printf语句在整个系统中所占用的CPU资源较少,对系统的运行影响可以基本忽略不计。