<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[popingcat的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/popingcat</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; popingcat]]></copyright><item><title><![CDATA[运动基础参数]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/148810736</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/148810736</guid><author>popingcat</author><pubDate>Sat, 21 Jun 2025 15:13:29 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[C++复习]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/148190769</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/148190769</guid><author>popingcat</author><pubDate>Sat, 24 May 2025 17:40:44 +0800</pubDate><description><![CDATA[大端序列：高位字节存低位置，低位字节存高位置（就是正常生活中读的方向）小端序列：高位字节存高位置，低位字节存低位置；最常用的判断方法是：联合体union {uint32_t i;char c[4];// 低地址存储低位字节→小端函数重载是允许在同一作用域内定义多个同名但参数列表不同的函数。C++ 通过 ** 名称修饰（Name Mangling）** 实现函数重载。编译器会根据函数名、参数类型和数量等信息，将函数名转换为唯一的内部标识符。3.指针和引用的区别？]]></description><category></category></item><item><title><![CDATA[Qt初识.]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/148123264</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/148123264</guid><author>popingcat</author><pubDate>Wed, 21 May 2025 20:10:03 +0800</pubDate><description><![CDATA[Qt开发时候的命名规范：]]></description><category></category></item><item><title><![CDATA[HTML简单语法标签（后续实操：云备份项目）]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147902024</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147902024</guid><author>popingcat</author><pubDate>Mon, 12 May 2025 18:18:01 +0800</pubDate><description><![CDATA[这些是 HTML 中最基础的标签，掌握它们可以创建简单的网页结构。]]></description><category></category></item><item><title><![CDATA[Bundle/Httplib的使用]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147869167</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147869167</guid><author>popingcat</author><pubDate>Sun, 11 May 2025 10:16:02 +0800</pubDate><description><![CDATA[注意的是进行这些解压与压缩等操作的时候，当你使用bundle库的时候，要记着把bundle.cpp和bundle.h文件都要进行编译！在软件开发中，“Bundle” 通常指用于打包、整合或管理资源的工具或库。下面是对上面的压缩后的文件进行解压的操作：Uncompress.cc。下面是简单的对一个文件进行压缩的简单操作：Compress.cc。直接从 GitHub 下载bundle。直接从 GitHub 下载。2.httplib库。]]></description><category></category></item><item><title><![CDATA[Linux--JsonCpp]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147857733</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147857733</guid><author>popingcat</author><pubDate>Sat, 10 May 2025 19:13:25 +0800</pubDate><description><![CDATA[JsonCpp 是一个用于 C++ 的 JSON 解析和生成库，支持 JSON 数据的读写、解析和序列化。它提供了简单的 API 来操作 JSON 对象、数组、字符串、数字等类型，是 C++ 开发中处理 JSON 数据的常用工具。核心功能与类：表示 JSON 中的值（对象、数组、字符串、数字等）。：用于解析 JSON 文本，将字符串转换为。（及其子类）：用于将序列化为 JSON 字符串。：更高效的流式输出工具。]]></description><category></category></item><item><title><![CDATA[高并发内存池]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147848963</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147848963</guid><author>popingcat</author><pubDate>Sat, 10 May 2025 11:34:13 +0800</pubDate><description><![CDATA[当前项目是实现一个高并发的内存池，它的原型是 google 的一个开源项目 tcmalloc，tcmalloc 全称 Thread - Caching Malloc，即线程缓存的 malloc，实现了高效的多线程内存管理，用于替代系统的内存分配相关的函数（malloc、free）。我们这个项目是把 tcmalloc 最核心的框架简化后拿出来，模拟实现出一个自己的高并发内存池，目的就是学习 tcmalloc 的精华，这种方式有点类似我们之前学习 STL 容器的方式。]]></description><category></category></item><item><title><![CDATA[IP协议.]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147830448</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147830448</guid><author>popingcat</author><pubDate>Fri, 09 May 2025 16:51:02 +0800</pubDate><description><![CDATA[IP 协议是互联网的核心协议，工作在网络层。它给网络中的设备分配唯一的 IP 地址，把上层数据封装成数据包，然后根据目的 IP 地址通过路由器等设备进行转发，实现数据在不同网络间的传输。它还能在必要时对数据包进行分片和重组，以适应不同网络的 MTU 限制，为互联网上的设备通信提供了基础的寻址和数据传输功能。通过合理设置主机号和网络号，就可以保证在相互连接的网络中，每台主机的 IP 地址都不相同。那么问题来了，手动管理子网内的 IP，是一个相当麻烦的事情。]]></description><category></category></item><item><title><![CDATA[Socket-TCP]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147654754</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147654754</guid><author>popingcat</author><pubDate>Sat, 03 May 2025 18:17:52 +0800</pubDate><description><![CDATA[在TCP/ip协议中，用源IP、源端口号、目的IP、目的端口号、协议号这样一个五元组来标识一个通信！]]></description><category></category></item><item><title><![CDATA[HTTP/HTTPS]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147639056</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147639056</guid><author>popingcat</author><pubDate>Wed, 30 Apr 2025 20:26:31 +0800</pubDate><description><![CDATA[数字指纹 (数据摘要)，其基本原理是利用单向散列函数 (Hash 函数) 对信息进行运算，生成一串固定长度的数字摘要。数字指纹并不是一种加密机制，但可以用来判断数据有没有被窜改。摘要常见算法：有 MD5、SHA1、SHA256、SHA512 等，算法把无限的映射成有限，因此可能会有碰撞（两个不同的信息，算出的摘要相同，但是概率非常低）。摘要特征：和加密算法的区别是，摘要严格意义不是加密，因为没有解密，只不过从摘要很难反推原信息，通常用来进行数据对比。]]></description><category></category></item><item><title><![CDATA[Socket-UDP]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147634712</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147634712</guid><author>popingcat</author><pubDate>Wed, 30 Apr 2025 16:08:43 +0800</pubDate><description><![CDATA[Socket（套接字 ）是计算机网络中用于实现进程间通信的重要编程接口，是对 TCP/IP 协议的封装 ，可看作是不同主机上应用进程之间双向通信端点的抽象。]]></description><category></category></item><item><title><![CDATA[Linux线程总结]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147412041</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147412041</guid><author>popingcat</author><pubDate>Tue, 22 Apr 2025 13:55:43 +0800</pubDate><description><![CDATA[可重入函数指的是在多个执行流（如多线程、多进程）同时调用时，不会出现数据竞争或者其他未定义行为的函数。也就是说，该函数在执行过程中可以被中断，并且在中断后再次被调用，其执行结果不会受到影响。]]></description><category></category></item><item><title><![CDATA[进程间通信-信号量]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147230415</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147230415</guid><author>popingcat</author><pubDate>Mon, 14 Apr 2025 19:28:18 +0800</pubDate><description><![CDATA[（Message Queue）是一种在不同组件或进程间进行异步通信的机制，它允许应用程序以松耦合的方式交换消息。消息队列就像一个缓冲区，发送者将消息放入队列，接收者从队列中取出消息进行处理。：发送者和接收者无需同时在线，发送者将消息放入队列后可以继续执行其他任务，接收者在合适的时候从队列中获取消息。：发送者和接收者不需要直接交互，降低了系统间的耦合度，提高了系统的可维护性和可扩展性。：在高并发场景下，消息队列可以作为缓冲区，缓解瞬间的流量压力，保证系统的稳定性。]]></description><category></category></item><item><title><![CDATA[进程间通信]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147190005</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147190005</guid><author>popingcat</author><pubDate>Sun, 13 Apr 2025 12:27:24 +0800</pubDate><description><![CDATA[原理就是：本质就是让不同的进程看见同一个内容！管道就是文件，这个文件是内存级文件在这个图中可以看到一个父进程创建了一个子进程，此时它们的pcb是不同的而且files_struct也是进行了一个写时拷贝，此时我们会有一个易错点就是任务子进程会写时拷贝父进程的所有内容，但是这个错误就在于图中这一类左边是文件系统，文件系统和进程是一个关联关系并不是上下级关系，所以你进程拷贝不拷贝和我文件系统是没有关系的。]]></description><category></category></item><item><title><![CDATA[程序日志函数]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147122835</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147122835</guid><author>popingcat</author><pubDate>Thu, 10 Apr 2025 16:59:44 +0800</pubDate><description><![CDATA[日志时间，日志的等级，日志内容，文件的名称和行号。代码里面需要了解到的知识又可变参数列表。]]></description><category></category></item><item><title><![CDATA[动/静态库]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147071827</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147071827</guid><author>popingcat</author><pubDate>Tue, 08 Apr 2025 17:05:44 +0800</pubDate><description><![CDATA[1.先了解一下动静态库上图可以看出来静态库就是由一堆进过链接阶段的.o文件组成的.a文件。在这里必须要强调的是库文件格式一定是libxxx.a/so在你进行路径查找使用的时候要去掉lib和后缀使用！]]></description><category></category></item><item><title><![CDATA[MySql]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147028668</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147028668</guid><author>popingcat</author><pubDate>Sun, 06 Apr 2025 19:33:38 +0800</pubDate><description><![CDATA[首先我们要了解MySql是一个数据库服务客户端，MySql是一个数据库服务端。数据库本质也是文件，只不过这些文件不由程序员来操作而是由数据库服务去mysqld操作！！它的实现可以帮助人更好的管理数据。]]></description><category></category></item><item><title><![CDATA[文件系统-inode/软硬件连接]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147012807</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147012807</guid><author>popingcat</author><pubDate>Sat, 05 Apr 2025 17:30:01 +0800</pubDate><description><![CDATA[首先我们了解一下文件简洁理解来说就是：文件内容+文件属性 ---> 磁盘上存储的文件=存文件的内容+存文件的属性；而文件的内容----存放在每个数据块；文件属性存放在iNode里面。要明白：linux系统中的文件是存储在磁盘中的，它是将文件属性和文件内容分开存储的！]]></description><category></category></item><item><title><![CDATA[文件系统-重定向]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/147002014</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/147002014</guid><author>popingcat</author><pubDate>Fri, 04 Apr 2025 20:13:54 +0800</pubDate><description><![CDATA[这里的fork一旦出现操作系统就会生成一个子进程，当你有了子进程的也就意味着你发生了写时拷贝，要知道的是写时拷贝也是会拷贝缓冲区里的内容的。应该知道linux下一切皆文件：所以文件描述符的前三个位置是用来存储in，out，err但是当你关闭了其中一个后，再次打开新的文件就会优先选择下标低的位置！切记write接口它会把它的数据放进系统缓冲区，然后系统缓冲区再把数据根据自己的刷新策略交给磁盘！，但是当你进行一个文件重定向输入的时候它会会改为全缓冲！，效果是一样的，都是读取并显示。命令的输出结果，追加到。]]></description><category></category></item><item><title><![CDATA[文件系统-文件操作]]></title><link>https://blog.youkuaiyun.com/popingcat/article/details/146996298</link><guid>https://blog.youkuaiyun.com/popingcat/article/details/146996298</guid><author>popingcat</author><pubDate>Fri, 04 Apr 2025 11:34:02 +0800</pubDate><description><![CDATA[对于文件操作而言：要明白在内核中通常是先对相关数据和对象进行描述，然后再对它们进行组织，这种方式有助于更高效、有序地管理系统资源。：内核需要对系统中的各种实体（如进程、文件、设备等）进行建模和表示。为了做到这一点，首先要定义数据结构来描述这些实体的属性和状态。比如，在 Linux 内核中，使用结构体来描述进程，这个结构体包含了进程的标识符、状态、优先级、打开的文件描述符等众多信息。通过这样的数据结构，内核能够清晰地记录每个进程的详细情况，就像是给每个进程建立了一个 “档案”。]]></description><category></category></item></channel></rss>