<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a8687216的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a8687216</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a8687216]]></copyright><item><title><![CDATA[git分支操作]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/147303497</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/147303497</guid><author>a8687216</author><pubDate>Thu, 17 Apr 2025 12:28:14 +0800</pubDate><description><![CDATA[git branch。]]></description><category></category></item><item><title><![CDATA[git常用修改命令]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/147302581</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/147302581</guid><author>a8687216</author><pubDate>Thu, 17 Apr 2025 12:15:20 +0800</pubDate><description><![CDATA[安全撤销（保留历史），适合已推送的提交。：仅限未推送的提交！]]></description><category></category></item><item><title><![CDATA[本地git操作]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/147213001</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/147213001</guid><author>a8687216</author><pubDate>Mon, 14 Apr 2025 11:16:28 +0800</pubDate><description><![CDATA[【代码】本地git操作。]]></description><category></category></item><item><title><![CDATA[git reset详解]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/147210526</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/147210526</guid><author>a8687216</author><pubDate>Mon, 14 Apr 2025 10:56:46 +0800</pubDate><description><![CDATA[到指定的提交，并可选择是否修改工作区和暂存区。⚠️ 注意：若提交已被推送到远程仓库，强制重置（修改会保留在工作目录，可重新编辑后提交。确保无需保留代码再使用，或提前。）后需谨慎操作，避免影响协作。]]></description><category></category></item><item><title><![CDATA[git使用]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/147206146</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/147206146</guid><author>a8687216</author><pubDate>Mon, 14 Apr 2025 10:36:13 +0800</pubDate><description><![CDATA[建议小步提交，避免大量代码一次性提交。拉取时若冲突，手动编辑文件。：会永久丢弃未提交的修改。目录（存储版本数据）]]></description><category></category></item><item><title><![CDATA[宏控的用法]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/147119891</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/147119891</guid><author>a8687216</author><pubDate>Thu, 10 Apr 2025 15:25:48 +0800</pubDate><description><![CDATA[/ 如果 CONFIG_FEATURE_X 被启用（=y 或 =m），则编译此代码。IS_ENABLED(CONFIG_USB)    // 展开为 1（模块也算启用）#include <linux/kconfig.h>  // 内核代码中已默认包含。// 假设 CONFIG_X 是通过 -DCONFIG_X=1 传递的编译选项。IS_ENABLED(CONFIG_NET)    // 展开为 1。IS_ENABLED(CONFIG_DEBUG)  // 展开为 0。// 未启用时的代码。]]></description><category></category></item><item><title><![CDATA[ARM基础知识点及简单汇编语法]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/142340869</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/142340869</guid><author>a8687216</author><pubDate>Wed, 18 Sep 2024 20:52:10 +0800</pubDate><description><![CDATA[RAM（随机存取存储器，Random Access Memory）**是一种计算机存储器，用于暂时存储当前正在使用的数据和指令。**ROM（只读存储器，Read-Only Memory）**是一种非易失性存储器，通常用于存储永久性数据，即使断电也能保持数据。CMOS（互补金属氧化物半导体，Complementary Metal-Oxide-Semiconductor）**是两种常见的数字电路技术。：NOR Flash的物理地址通常映射到处理器的启动地址（如。：将寄存器的值存储到内存。]]></description><category></category></item><item><title><![CDATA[frame buffer的使用]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/142108456</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/142108456</guid><author>a8687216</author><pubDate>Tue, 10 Sep 2024 20:30:20 +0800</pubDate><description><![CDATA[Frame buffer 是一块连续的物理内存，用于保存屏幕上每个像素的颜色信息。每个像素的信息可以表示为不同的格式，如 RGB、BGR、ARGB 等，具体格式取决于系统的显示模式。Frame buffer 中的每个字节都对应于屏幕上的一个或多个像素。Linux 系统中的 Frame Buffer 通过内存映射机制（Memory-Mapped I/O）工作。函数将 frame buffer 的内存映射到用户空间，便于直接对其操作。等表示的是 Frame Buffer 设备文件，程序可以通过。]]></description><category></category></item><item><title><![CDATA[哈希表和时间复杂度]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/142065981</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/142065981</guid><author>a8687216</author><pubDate>Mon, 09 Sep 2024 18:48:23 +0800</pubDate><description><![CDATA[（Hash Table），它通过将键值映射到特定的数组索引，从而实现高效的查找、插入和删除操作。其核心思想是将数据直接存储到具有固定大小的数组中，通过哈希函数计算出每个数据的存储位置。主要特性：哈希函数用于将输入的键（通常是字符串或数字）转换为数组中的索引。理想的哈希函数应尽量避免不同的键映射到同一索引（称为冲突）。：负载因子是哈希表中存储的元素数量与哈希表大小的比值。当负载因子过大时，哈希表的性能会下降，通常通过（重新哈希）来解决。]]></description><category></category></item><item><title><![CDATA[栈和队列的数据结构]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141978805</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141978805</guid><author>a8687216</author><pubDate>Fri, 06 Sep 2024 23:47:38 +0800</pubDate><description><![CDATA[使用链表实现栈和队列的操作，可以充分发挥链表动态分配内存的特性，避免数组实现中需要预定义大小的限制。也就是说，最后加入栈中的元素最先被移除。这样插入操作发生在队尾，删除操作发生在队头。即最先加入队列的元素最先被移除。作为栈的栈顶，实现入栈、出栈和查看栈顶的操作。的原则，因此我们可以使用单向链表的。的原则，因此使用链表实现时，可以让。]]></description><category></category></item><item><title><![CDATA[内核链表及其操作]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141947697</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141947697</guid><author>a8687216</author><pubDate>Fri, 06 Sep 2024 00:29:11 +0800</pubDate><description><![CDATA[定义一个双向链表的节点结构，类似于内核中的list_head，包含两个指针，分别指向前驱节点和后继节点。此外，还可以嵌入一些实际的数据。// 定义链表节点结构// 前驱节点// 后继节点// 数据节点结构，包含数据和链表指针int data;// 嵌入链表指针扩展my_node结构体，包含更复杂的数据（如姓名、年龄和成绩）。// 链表节点结构// 复杂数据类型——学生信息int age;// 嵌入链表结构。]]></description><category></category></item><item><title><![CDATA[单向链表，双向链表的操作]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141902190</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141902190</guid><author>a8687216</author><pubDate>Wed, 04 Sep 2024 19:48:06 +0800</pubDate><description><![CDATA[双向链表是一种链式数据结构，每个节点包含三个部分：数据域、指向前一个节点的指针（与单向链表相比，双向链表的优点在于可以在 O(1) 时间内访问前一个节点。初始化一个空的双向链表，通常用一个指向第一个节点的头指针。遍历并打印链表中的所有节点，从头到尾和从尾到头都可以进行。双向链表的删除操作可以是删除头节点、尾节点或任意节点。双向链表的插入操作可以在头部、尾部或中间位置进行。将链表反转，使每个节点的指针指向前一个节点。将新节点插入到链表的头部。将新节点插入到链表的尾部。删除链表中的某个指定节点。]]></description><category></category></item><item><title><![CDATA[数据结构---链表]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141868391</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141868391</guid><author>a8687216</author><pubDate>Tue, 03 Sep 2024 18:34:50 +0800</pubDate><description><![CDATA[有头链表是指在链表的最前面有一个特殊的节点，即头节点（head node）。头节点不存储实际的数据，它的作用是指向链表的第一个数据节点，或者作为链表的起点。无头链表是指链表没有头节点，第一个节点即是链表的第一个数据节点。链表的起点直接指向第一个数据节点，如果链表为空，则该指针为NULL。]]></description><category></category></item><item><title><![CDATA[嵌入式数据库]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141687819</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141687819</guid><author>a8687216</author><pubDate>Thu, 29 Aug 2024 21:07:49 +0800</pubDate><description><![CDATA[SQLite3是一个轻量级的关系型数据库管理系统，它遵循ACID（原子性、一致性、隔离性和持久性）原则，广泛用于嵌入式系统和应用程序中。通常可以通过将表的位置互换来实现右联接的效果，即使用左联接并调换表的位置。交叉联接用于生成两个表之间的笛卡尔积，即每个表的每一行与另一个表的每一行进行组合。左联接返回左表中的所有记录，即使在右表中没有匹配的记录。如果右表中没有匹配的记录，则结果中右表的列将包含空值（NULL）。只有当两个表中的记录满足联接条件时，才会包含在结果中。关键字，按列的值从小到大排序。]]></description><category></category></item><item><title><![CDATA[IO多路复用几种函数]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141649400</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141649400</guid><author>a8687216</author><pubDate>Wed, 28 Aug 2024 20:49:57 +0800</pubDate><description><![CDATA[poll()是另一种 I/O 多路复用机制，允许应用程序监视多个文件描述符，等待它们的状态发生变化。与select()不同，poll()使用一个数组来表示文件描述符。epoll()是 Linux 特有的 I/O 多路复用机制，设计用于高效处理大量文件描述符，尤其适合需要高性能的网络服务和其他 I/O 密集型应用。epoll提供了更好的扩展性和性能，尤其在处理大量文件描述符时优于select()和poll()]]></description><category></category></item><item><title><![CDATA[TCP并发服务器多线程和多进程方式以及几种IO模型]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141612323</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141612323</guid><author>a8687216</author><pubDate>Tue, 27 Aug 2024 21:04:56 +0800</pubDate><description><![CDATA[应用程序可以在等待 I/O 完成的同时执行其他任务，需通过轮询（多次尝试）来检查 I/O 是否完成。信号驱动 I/O 模型中，应用程序发起 I/O 操作并继续执行其他任务，当数据准备好时，内核会通过信号通知应用程序。在异步 I/O 模型中，应用程序发起 I/O 操作并立即返回，I/O 操作由内核完成，操作完成后内核通过回调机制通知应用程序。在阻塞 I/O 模型中，当应用程序发起 I/O 操作时，整个进程会被阻塞，直到操作完成。在这个过程中，应用程序无法执行其他任务，必须等待 I/O 操作的完成。]]></description><category></category></item><item><title><![CDATA[TCP的报文段结构与TCP编程的小工具]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141473745</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141473745</guid><author>a8687216</author><pubDate>Fri, 23 Aug 2024 20:18:42 +0800</pubDate><description><![CDATA[和。TCP首部是控制TCP连接和传输的重要部分，而数据部分则包含了实际要传输的应用层数据。]]></description><category></category></item><item><title><![CDATA[UDP编程和TCP网络编程]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141437725</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141437725</guid><author>a8687216</author><pubDate>Thu, 22 Aug 2024 21:18:39 +0800</pubDate><description><![CDATA[【代码】UDP编程和TCP网络编程。]]></description><category></category></item><item><title><![CDATA[IPC-共享内存-进程间通信方式 网络编程基本知识]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141405440</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141405440</guid><author>a8687216</author><pubDate>Thu, 22 Aug 2024 00:24:19 +0800</pubDate><description><![CDATA[共享内存是一种高效的 IPC 机制，允许不同进程共享同一块内存区域。]]></description><category></category></item><item><title><![CDATA[有名管道，signal]]></title><link>https://blog.youkuaiyun.com/a8687216/article/details/141285517</link><guid>https://blog.youkuaiyun.com/a8687216/article/details/141285517</guid><author>a8687216</author><pubDate>Sat, 17 Aug 2024 19:55:08 +0800</pubDate><description><![CDATA[用于设置特定信号的处理函数。当指定的信号发生时，操作系统会调用设定的处理函数。成功时返回实际读取的字节数，失败时返回 -1 并设置。成功时返回实际写入的字节数，失败时返回 -1 并设置。是要检查的信号的编号。是要删除的有名管道的路径。: 允许设置信号处理程序以及附加选项，如信号阻塞或修改信号处理的标志。返回值是旧的信号处理函数的指针。: 用于阻塞、解除阻塞或设置进程的信号屏蔽字。结构体的指针，用于指定新的信号处理行为，结构体的指针，用于保存旧的信号处理行为。: 用于判断信号是否属于指定的信号集。]]></description><category></category></item></channel></rss>