- 博客(13)
- 问答 (1)
- 收藏
- 关注
原创 第二节、TCP 通信深度解析
TCP协议是互联网的核心传输协议,C++开发者需要深入理解其工作机制。文章详细解析了TCP的三次握手建立连接和四次挥手断开连接过程,解释了TIME_WAIT状态的作用。重点探讨了TCP粘包问题及其解决方案,推荐使用消息头+消息体(TLV)格式处理数据边界。最后总结了编写健壮TCP程序的要点:正确处理返回值、忽略SIGPIPE信号、设计应用层协议以及实现心跳机制。这些知识对开发可靠的网络应用至关重要。
2026-01-28 12:48:32
721
1
原创 第一节、套接字通信基础
本文摘要:文章系统介绍了网络编程基础概念与技术要点,包括B/S与C/S架构对比、服务器软硬件组成、IP地址与端口作用、OSI/TCP分层模型等核心知识。重点讲解了Socket编程流程,涵盖TCP/UDP通信机制、关键API使用(socket/bind/listen/accept/connect)、地址结构体转换和字节序处理。通过代码示例演示了TCP服务端实现过程,并指出常见开发陷阱如端口冲突和阻塞问题。内容从理论到实践,为Linux网络编程提供了清晰的入门指南。
2026-01-25 15:38:34
655
原创 第九节、线程同步
Linux线程同步机制详解 本文全面介绍了Linux系统中多线程编程的核心同步机制,包括互斥锁、条件变量、读写锁和信号量。文章首先阐述了线程同步的基本概念和竞态条件问题,随后详细解析了四种同步机制的工作原理、API使用方法和典型应用场景: 互斥锁(Mutex):用于保护临界区,确保同一时刻只有一个线程访问共享资源 条件变量(Condition Variable):实现线程间通知机制,配合互斥锁使用 读写锁(RWLock):针对读多写少场景优化的高效锁机制 信号量(Semaphore):基于计数器的同步原语,
2026-01-21 14:59:29
933
原创 第八节、线程
本文全面介绍了Linux线程编程的核心概念与操作。主要内容包括:线程与进程的关系对比,线程创建与管理(pthread_create、pthread_join、pthread_detach),线程终止方式(return、pthread_exit、pthread_cancel),线程属性设置(pthread_attr_t)以及线程同步机制。重点讲解了线程ID处理、资源清理、取消点概念等关键知识点,并通过多个代码示例演示了线程创建、参数传递、返回值获取等实际应用场景。文章还分析了线程编程中的常见陷阱,如资源竞争、
2026-01-19 16:22:24
1002
原创 C++数据结构与算法
数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构,散列结构、树形结构,图形结构等等。算法:求解具体问题的步骤描述,代码上表现出来是解决特定问题的一组有限的指令序列。算法复杂度:时间和空间复杂度,衡量算法效率,算法在执行过程中,随着数据规模n的增长,算法执行所花费的时间和空间的增长速度。大O计法应用示例O(1)数组随机访问、哈希表O(logn)二分搜索、二叉堆调整、AVL、红黑树查找O(n)线性搜索O(nlogn)
2026-01-18 22:44:57
561
原创 第七节、守护进程
本文介绍了Linux系统中进程组、会话和守护进程的核心概念。进程通过进程组和会话形成层级结构,进程组用于管理协同工作的进程,会话则包含多个进程组并与终端关联。守护进程是一种脱离终端运行的后台服务进程,具有生命周期长、无控制终端等特点。文章详细阐述了创建守护进程的"标准六步法":1) fork并退出父进程;2) 创建新会话;3) 再次fork;4) 改变工作目录;5) 重设文件权限掩码;6) 关闭或重定向文件描述符。最后提供了一个完整的守护进程实现示例,展示如何将普通进程转化为守护进程并执
2026-01-16 20:22:20
1028
原创 第六节、信号
方式典型代表触发源1. 终端按键Ctrl+C (SIGINT键盘驱动 -> 内核2. 系统调用kill()raise()用户代码3. 硬件异常除0 (SIGFPE), 段错误 (SIGSEGVCPU/MMU -> 内核4. 软件条件定时器 (SIGALRM), 管道断裂 (SIGPIPE内核子系统5. Shell 命令用户在 Shell 的操作特性Shell 命令 killC 函数 kill()主要用途运维、手动管理进程软件开发、进程间通信、异常处理默认信号SIGTERM(15)
2026-01-16 14:13:17
980
原创 第五节、进程间通信(IPC)
本文介绍了Linux系统中四种进程间通信(IPC)方式,重点分析了管道和mmap的实现原理与应用。管道分为匿名管道和命名管道(FIFO),匿名管道通过环形队列实现,仅适用于有血缘关系的进程;命名管道则支持无血缘关系进程通信。mmap通过文件映射实现高效内存共享,支持有/无血缘关系的进程通信,包括文件映射和匿名映射两种形式。文章详细阐述了各方式的特性、使用方法和注意事项,并提供了完整的代码示例,如父子进程管道通信、ls|wc-l实现、基于文件的mmap通信等。这些IPC方式在性能、复杂度和适用场景上各有特点,
2026-01-14 21:01:30
1037
原创 第四节、进程
在内存中只允许一个程序运行,该程序独占 CPU 和系统资源,直到它执行完毕或主动放弃 CPU(如等待 I/O),操作系统才能加载下一个程序。在内存中同时存放多个程序,当一个程序因 I/O 操作而暂停时,CPU 可以立即切换到另一个就绪的程序执行,从而提高 CPU 利用率。⚠️ 注意:多道程序设计不等于同时执行,而是通过快速切换让多个程序“看起来”在交替运行。CPU(Central Processing Unit,中央处理器)是计算机的“大脑”,负责执行程序指令、处理数据、控制其他硬件协调工作。
2025-12-14 19:26:23
799
原创 第三节、Linux文件操作
函数用途参数通过文件路径截断文件off_t通过文件描述符截断文件intoff_t:为已有文件创建新的硬链接。:删除一个文件名(减少 inode 引用计数),可能触发文件数据释放。两者都是底层文件系统操作,常用于系统编程、日志轮转、临时文件管理等场景。unlink特性:调用unlink,只是让文件具备了被释放的条件。而不一定立即释放。硬链接计数为0(没有dentry对应)的文件仍不会马上被释放。要等到所有打开该文件的进程运行结束,没有任何进程使用该文件,此时,系统才会择机释放该文件。
2025-12-07 21:31:55
1015
原创 第二节、文件编译、调试及库制作
本文摘要: Linux权限系统:详细解释了rwx权限对文件和目录的不同作用,r权限允许查看内容/列表,w权限允许修改内容/结构,x权限控制执行/进入目录的能力。 GCC编译过程:完整解析四个编译阶段(预处理、编译、汇编、链接),包括各阶段命令和原理说明,重点介绍了数据段合并和地址回填机制。 函数库开发:对比静态库(.a)和动态库(.so)的机制差异,提供从源码到库文件的完整制作流程,包括编译选项、链接方法及环境配置技巧。 Makefile工程管理:讲解核心语法规则、自动变量和模式匹配,演示如何通过wildc
2025-11-30 18:33:20
1077
原创 第一节、linux命令基础
Linux 基础命令与系统管理摘要 本文系统介绍了Linux操作系统的基础知识及常用命令。主要内容包括: Shell解析器:作为用户与内核交互的接口,负责解析命令并调用程序执行 目录结构:详解/bin、/etc、/home等标准目录功能及"一切皆文件"的设计理念 文件操作命令: 目录管理:cd、pwd、mkdir、rmdir 文件操作:ls、touch、cp、mv、rm 内容查看:cat、more/less、head/tail 权限管理:chmod修改权限、chown/chgrp修改所有
2025-11-13 18:33:59
877
原创 Qt中的“回调函数”机制
本文介绍了Qt中实现回调的四种主要方式。首先解释了回调的概念,即通过函数参数传递另一个函数来实现事件通知。重点讲解了std::function的用法,它能统一处理各种可调用对象,包括函数指针、Lambda表达式和函数对象等。接着详细阐述了Qt推荐使用的信号与槽机制,这是线程安全且解耦的回调方式。文章还介绍了Lambda表达式作为槽函数的使用,以及函数对象的应用场景。最后总结了不同回调方式的适用场景和核心原则,强调在GUI开发中应优先使用信号与槽机制,并提供了跨线程回调等高级技巧和最佳实践建议。
2025-11-08 19:47:53
1226
空空如也
vs2022为什么总是出现这种情况
2023-10-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅