观察者模式是嵌入式系统中实现数据实时分发的重要设计模式,其核心思想是当主题对象的数据发生变化时,主动通知所有订阅的观察者对象,从而实现松耦合的数据交互。在嵌入式场景中,该模式常用于传感器数据分发、事件广播等需要多组件实时响应的场景。
2025年07月03日
观察者模式是嵌入式系统中实现数据实时分发的重要设计模式,其核心思想是当主题对象的数据发生变化时,主动通知所有订阅的观察者对象,从而实现松耦合的数据交互。在嵌入式场景中,该模式常用于传感器数据分发、事件广播等需要多组件实时响应的场景。
2025年07月03日
2018 年 4 月,在荷兰阿姆斯特丹 Hack In The Box 安全会议上,我们分享了一个关于隔离网攻击技术的议题——Ghost Tunnel: Covert Data Exfiltration Channel to Circumvent Air Gapping(适用于隔离网络的 Wi-Fi 隐蔽传输通道)。
Ghost Tunnel 是一种可适用于隔离环境下的后门传输方式。一旦 payload(攻击载荷)在目标设备释放,Ghost Tunnel 可在用户无感知情况下对目标进行控制并将信息回传到攻击者的设备。相比于现有的其他类似研究(如 WHID,一种通过 Wi-Fi 进行控制的 HID 设备),Ghost Tunnel 不创建或依赖于任何有线、无线网络,甚至不需要外插任何硬件模块。
2025年07月03日
启动是 App 给用户的第一印象,启动越慢,用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环。启动优化涉及到的知识点非常多,面也很广,一篇文章难以包含全部,所以拆分成两部分:原理和实战,本文是实战篇。
原理篇:抖音品质建设-iOS 启动优化《原理篇》
2025年07月03日
typedef是C语言中的一个关键字,用于为现有的数据类型定义一个新的名称。使用typedef可以简化代码,提高可读性和可维护性。
语法格式如下:
typedef 原类型名 新类型名;例如,我们可以使用typedef为int类型定义一个新的名称“integer”,如下所示:
2025年07月03日
虽说C语言是一门很成熟的编程语言,但是近些年来也是有所发展的,从早期的C89到后来的C99、C11等新标准,C语言逐步增加了许多好用的功能,例如新标准头文件“stdint.h”的添加。
如果程序员希望写出可移植的C语言程序,首先最重要的一点是不能假定位宽。C语言标准并没有明确指定的 short、int、long 等类型的位宽,因此可能在某些平台 sizeof(int) 等于 2,在其他平台 sizeof(int) 等于 4,所以如果编写的C语言代码假定 sizeof(int) 是一个固定值,显然就属于不可移植的代码。
2025年07月03日
在C语言中,typedef可以被看作是一种强大的工具,它允许程序员为数据类型赋予一个新的名称。除了提供更加清晰明确的代码解读,typedef还能简化复杂的声明并增强代码的可读性。本文将一步一步地解析typedef的使用方法,展示其在C语言中的重要性以及强大的功能。
首先,让我们从 typedef 的基础语法入手。typedef语句有两个部分:首先是已经存在的类型,然后是该类型的新名称。以简单的整数类型为例,我们将创建一个新的名称"Int":
2025年07月03日
//直接把内存数据 写入到文件中
typedef struct Teacher
{
char name[64];
int age;
}Teacher;
void main_fwrite()
{
int i = 0;
FILE *fp = NULL;
char *fileName = "c:/3.data";
Teacher tArray[3];
for (i = 0; i < 3; i++)
{
sprintf(tArray[i].name, "%d%d%d", i + 1, i + 1, i + 1);
tArray[i].age = i + 31;
}
fp = fopen(fileName, "wb");
if (fp == NULL)
{
printf("建立文件夹失败\n");
return;
}
for (i = 0; i < 3; i++)
{
//函数的返回值
myN = fwrite(&tArray[i], sizeof(Teacher), 1, fp);
}
if (fp == NULL)
{
fclose(fp);
}
}