<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[miracleAshing的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/miracleAshing</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; miracleAshing]]></copyright><item><title><![CDATA[TCP-IP协议与粘包]]></title><link>https://blog.csdn.net/miracleAshing/article/details/168882072</link><guid>https://blog.csdn.net/miracleAshing/article/details/168882072</guid><author>miracleAshing</author><pubDate>Thu, 29 Oct 2026 08:59:47 +0800</pubDate><description><![CDATA[TCP 是面向字节流协议，没有消息边界！UDP 面向报文，不存在粘包。]]></description><category></category></item><item><title><![CDATA[网络常识与基础知识]]></title><link>https://blog.csdn.net/miracleAshing/article/details/168768625</link><guid>https://blog.csdn.net/miracleAshing/article/details/168768625</guid><author>miracleAshing</author><pubDate>Fri, 23 Oct 2026 16:25:06 +0800</pubDate><description><![CDATA[例如:192.168.1.1，192==1100 0000 前面为110，所以为C类地址（前24位为网络号，后8位为主机号），所以网络号：192.168.1，主机号：1。如果不统一，A 电脑发的端口号，B 电脑读出来数字直接乱掉，通信失败。，是传输层用来标识一条通信端点的组合，是程序之间网络通信的接口。服务提供：为终端用户提供具体网络服务（如网页浏览、文件传输、邮件收发）写网络程序，就是操作 socket，让两个进程互相发数据。，直接 ARP 拿到对方 MAC，网卡发帧直连通信。Socket（套接字）=（]]></description><category></category></item><item><title><![CDATA[线程的互斥与同步机制——互斥锁、条件变量、无名信号量]]></title><link>https://blog.csdn.net/miracleAshing/article/details/167991189</link><guid>https://blog.csdn.net/miracleAshing/article/details/167991189</guid><author>miracleAshing</author><pubDate>Thu, 15 Oct 2026 16:22:40 +0800</pubDate><description><![CDATA[互斥锁(Mutex,即Mutual Exclusion Lock)是并发编程中用于保护 “共享资源” 的同步工具，本质是一把“独占钥匙”。为什么需要互斥锁？当多个线程同时读写共享资源时，会出现 “竞态条件”，导致数据错误；互斥锁能强制线程 “排队访问” 资源，避免竞争。核心作用：保证 “同一时刻，只有一个线程能持有锁并访问共享资源”，实现 “互斥访问条件变量是并发编程中用于实现线程间“等待-通知”机制的同步工具，可让线程在某个条件不满足时挂起，待条件满足后被唤醒。为什么需要条件变量？仅用互斥锁能保证。]]></description><category></category></item><item><title><![CDATA[线程概念与多线程相关函数——创建与终止、线程标识、线程回收、线程控制函数]]></title><link>https://blog.csdn.net/miracleAshing/article/details/167883536</link><guid>https://blog.csdn.net/miracleAshing/article/details/167883536</guid><author>miracleAshing</author><pubDate>Wed, 14 Oct 2026 20:07:34 +0800</pubDate><description><![CDATA[在Linux内核中，没有独立的“线程”数据结构，线程的本质是“共享资源的轻量级进程(LightweightProcess，简称LWP)”；]]></description><category></category></item><item><title><![CDATA[传统进程通信方式——无名管道、有名管道、信号]]></title><link>https://blog.csdn.net/miracleAshing/article/details/167663233</link><guid>https://blog.csdn.net/miracleAshing/article/details/167663233</guid><author>miracleAshing</author><pubDate>Mon, 12 Oct 2026 20:31:00 +0800</pubDate><description><![CDATA[无名管道是内核空间实现的机制，只能用于，无名管道的大小是64KB；]]></description><category></category></item><item><title><![CDATA[特殊进程——孤儿、僵尸、守护进程]]></title><link>https://blog.csdn.net/miracleAshing/article/details/167485876</link><guid>https://blog.csdn.net/miracleAshing/article/details/167485876</guid><author>miracleAshing</author><pubDate>Sat, 10 Oct 2026 16:26:02 +0800</pubDate><description><![CDATA[定义：当一个进程的父进程先于它终止（父进程意外崩溃、被强制终止如kill -9，或父进程主动退出但未正确处理子进程），该进程就会成为孤儿进程。，他不是一种状态。影响：本身是系统正常处理机制的结果，无负面影响，反而避免了进程成为“无主进程”；例如：若父进程因bug崩溃，子进程被收养后可继续提供服务。]]></description><category></category></item><item><title><![CDATA[多进程相关函数]]></title><link>https://blog.csdn.net/miracleAshing/article/details/167387870</link><guid>https://blog.csdn.net/miracleAshing/article/details/167387870</guid><author>miracleAshing</author><pubDate>Sat, 10 Oct 2026 11:18:58 +0800</pubDate><description><![CDATA[所需头文件：#include <sys/types.h>、#include <unistd.h>原型：pid_t getpid(void);获取当前进程自身的进程号返回值：返回当前进程自身的进程号。]]></description><category></category></item><item><title><![CDATA[进程基础——进程创建fork、其他命令]]></title><link>https://blog.csdn.net/miracleAshing/article/details/167274074</link><guid>https://blog.csdn.net/miracleAshing/article/details/167274074</guid><author>miracleAshing</author><pubDate>Fri, 09 Oct 2026 11:24:15 +0800</pubDate><description><![CDATA[所需头文件：#include <sys/types.h>、#include <unistd.h>原型：pid_t fork(void);复制当前进程，创建子进程返回值：成功则返回) 或失败则子进程没有被创建，父进程收到-1，并重置错误码（perror提示失败原因）]]></description><category></category></item><item><title><![CDATA[Linux IO编程——静态库、动态库]]></title><link>https://blog.csdn.net/miracleAshing/article/details/165719031</link><guid>https://blog.csdn.net/miracleAshing/article/details/165719031</guid><author>miracleAshing</author><pubDate>Mon, 21 Sep 2026 10:47:36 +0800</pubDate><description><![CDATA[动态库也称之为共享库，是在程序运行时才被加载到内存中，可以被多个可执行文件共享使用，为它们提供函数、数据等资源。特点：可执行文件运行时，需依赖系统中存在的动态库；可执行文件体积小，有效节省磁盘和内存空间；更新灵活，只要接口不变，无需重新编译依赖它的可执行文件；动态库文件格式：windows平台下为.dll；Linux平台下为.so；Mac平台下为.dylib；可能原因：库文件路径错误、库名拼写错误、库中确实不存在该函数或变量的定义；解决方法：检查库路径和库名是否正确，确认库中是否实现了所需功能；]]></description><category></category></item><item><title><![CDATA[文件IO函数]]></title><link>https://blog.csdn.net/miracleAshing/article/details/165609999</link><guid>https://blog.csdn.net/miracleAshing/article/details/165609999</guid><author>miracleAshing</author><pubDate>Wed, 16 Sep 2026 17:09:52 +0800</pubDate><description><![CDATA[文件IO函数——开闭函数（open、close）、读写函数（read、write、联合使用）、文件定位函数lseek（类fseek）、文件控制函数fcntl（针对其他进程进行加锁解锁，其他进程无法访问等）]]></description><category></category></item><item><title><![CDATA[Linux IO——缓存区]]></title><link>https://blog.csdn.net/miracleAshing/article/details/165439139</link><guid>https://blog.csdn.net/miracleAshing/article/details/165439139</guid><author>miracleAshing</author><pubDate>Tue, 15 Sep 2026 11:44:44 +0800</pubDate><description><![CDATA[标准 I/O 中的缓冲区是C语言标准库为优化文件读写效率设计的内存机制，本质上就是一段由FILE结构体管理的内存空间；通过、批量处理，可以减少硬件IO(如磁盘、终端)的交互次数，提升程序效率。]]></description><category></category></item><item><title><![CDATA[标准IO函数——文件读写、字符(串)读写函数]]></title><link>https://blog.csdn.net/miracleAshing/article/details/165297546</link><guid>https://blog.csdn.net/miracleAshing/article/details/165297546</guid><author>miracleAshing</author><pubDate>Mon, 14 Sep 2026 19:37:21 +0800</pubDate><description><![CDATA[Linux IO编程——man说明手册、文件操作函数（fopen、fclose、strerror、perror）、字符读写函数（fgetc、fputc）、字符串读写函数（fgets、fputs）的使用。]]></description><category></category></item><item><title><![CDATA[Linux IO编程——搭建开发环境 ]]></title><link>https://blog.csdn.net/miracleAshing/article/details/165116233</link><guid>https://blog.csdn.net/miracleAshing/article/details/165116233</guid><author>miracleAshing</author><pubDate>Mon, 14 Sep 2026 09:43:37 +0800</pubDate><description><![CDATA[如何配置Ubuntu NAT联网、配置Ubuntu SSH 免密登录、VS Code远程连接Ubuntu步骤及常见的问题（无法连接、不满足vscode服务器的先决条件）等。]]></description><category></category></item><item><title><![CDATA[Makefile]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164999007</link><guid>https://blog.csdn.net/miracleAshing/article/details/164999007</guid><author>miracleAshing</author><pubDate>Fri, 11 Sep 2026 19:57:59 +0800</pubDate><description><![CDATA[不支持引用未定义变量；格式：变量名 := 变量的初始值；]]></description><category></category></item><item><title><![CDATA[shell编程]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164817615</link><guid>https://blog.csdn.net/miracleAshing/article/details/164817615</guid><author>miracleAshing</author><pubDate>Fri, 11 Sep 2026 11:31:53 +0800</pubDate><description><![CDATA[命名规则：变量名由字母、数字和下划线组成，且不能以数字开头。赋值格式：（等号左右两边不允许有空格）变量名=初始值变量名=' 初始值'变量名="初始值"注意：当变量的初始值包含空格时，需用单引号或双引号括起来，否则会报错。在shell中定义的变量没有数据类型，变量的值都视为字符串；如：num=12345678；变量调用方式：使用${变量名}形式来引用变量的值，可避免歧义。例如：str2="${str1}world"，将str1后面加上world，整体赋值给str2。]]></description><category></category></item><item><title><![CDATA[环境变量配置]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164803473</link><guid>https://blog.csdn.net/miracleAshing/article/details/164803473</guid><author>miracleAshing</author><pubDate>Thu, 10 Sep 2026 09:37:30 +0800</pubDate><description><![CDATA[source适用于需要立即生效的场景（如开发调试）；重新打开终端适用于配置修改后希望全局生效且不影响当前操作的场景。]]></description><category></category></item><item><title><![CDATA[gcc与gdb]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164592015</link><guid>https://blog.csdn.net/miracleAshing/article/details/164592015</guid><author>miracleAshing</author><pubDate>Thu, 10 Sep 2026 09:20:46 +0800</pubDate><description><![CDATA[gcc hello.c：直接使用gcc编译.c文件只会生成一个a.out可执行文件，每次gcc hello.c都会覆盖一次a.out，执行./a.out运行.c文件。gcc hello.c -o hello：借助-o选项确定输出可执行文件名，hello效果==a.out多文件编译：gcc a.c b.c -o a。]]></description><category></category></item><item><title><![CDATA[vim文本编辑]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164572561</link><guid>https://blog.csdn.net/miracleAshing/article/details/164572561</guid><author>miracleAshing</author><pubDate>Tue, 08 Sep 2026 10:40:00 +0800</pubDate><description><![CDATA[1.先检查联网状态（使用ping看是否能ping通外网）2.更新apt并下载。]]></description><category></category></item><item><title><![CDATA[Linux文件操作相关命令——压缩与解压缩、文件操作、硬链接与软链接]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164369490</link><guid>https://blog.csdn.net/miracleAshing/article/details/164369490</guid><author>miracleAshing</author><pubDate>Tue, 08 Sep 2026 09:13:49 +0800</pubDate><description><![CDATA[tail 文件名：默认显示文件最后10行内容。tail -n 文件名：显示文件最后n行内容。tail -f 文件名：实时跟踪文件新增内容（使用一个窗口进行实时追踪；另一个窗口进行追加或覆盖写入内容）。]]></description><category></category></item><item><title><![CDATA[Linux常见命令——基础命令、通配符、用户相关、软件包管理、网络、辅助命令]]></title><link>https://blog.csdn.net/miracleAshing/article/details/164266977</link><guid>https://blog.csdn.net/miracleAshing/article/details/164266977</guid><author>miracleAshing</author><pubDate>Fri, 04 Sep 2026 16:28:12 +0800</pubDate><description><![CDATA[基础命令（ls、cd、rm、mv等）、通配符（*、？、[ ]）、用户及用户组命令（su、sudo、useradd、groupadd等）、软件包管理（dpkg、apt等）、网络（ifconfig、ip、ping等）、辅助命令（man、history等）]]></description><category></category></item></channel></rss>