- 博客(86)
- 收藏
- 关注
原创 【Linux网络】传输层协议TCP(4)拥塞控制、延迟应答
本文系统讲解了TCP传输层的核心机制:通过拥塞控制(慢启动、拥塞避免)动态调节发送速率,防止网络过载;利用延迟应答优化窗口通告,提升传输效率;针对面向字节流特性,解析粘包/拆包问题及应用层解决方案;并分析TCP异常情况下的连接处理与保活机制。最后总结TCP在可靠性与性能间的平衡设计,揭示其复杂性背后的工程智慧。
2026-11-05 12:37:04
152
原创 【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
本文系统讲解了TCP网络中的滑动窗口机制与流量控制原理。重点阐述了通过窗口大小动态调节发送速率,实现高效可靠传输;介绍了窗口探测机制解决接收方缓冲区满时的通信盲区问题;详细解析了滑动窗口在发送缓冲区中的三段划分(已确认、窗口、待发送)及指针移动逻辑;结合累计确认、冗余ACK、快速重传与超时重传等机制,说明如何应对报文丢失与应答丢失等异常情况。最后指出滑动窗口本质是环形缓冲区上的动态窗口,确保数据不丢、不重、有序可靠传输。
2026-11-03 21:29:22
165
原创 【Linux网络】传输层协议TCP(2)连接管理、三次握手、四次挥手
本文系统讲解Linux网络中的TCP连接管理机制,重点剖析三次握手建立连接与四次挥手断开连接的过程。通过类比餐厅等候区,形象说明全连接队列(backlog)的作用及限流意义;深入解析TIME_WAIT状态的必要性——保障ACK可靠传输并清除网络中延迟旧报文,避免四元组冲突。同时介绍SO_REUSEADDR选项如何解决端口复用问题,提升服务器性能。内容兼具理论深度与实践指导,助力理解TCP核心机制。
2026-11-03 12:10:24
139
原创 【Linux网络】传输层协议TCP(1)---TCP报文介绍
本文系统梳理了TCP报文结构及其核心机制,涵盖首部长度、序号与确认序号的可靠性保障(重传、去重、排序、累积确认)、捎带应答的全双工优化,以及窗口大小实现的流量控制。重点解析了6个标志位(SYN、ACK、FIN、RST、PSH、URG)的功能,揭示TCP如何通过有序字节流传输、状态感知与动态反馈,实现高效可靠的网络通信。
2026-11-02 12:49:23
78
原创 【AI应用】认识机器学习与深度学习
人工智能(Artificial Intelligence,简称 AI)通常指让机器在通常需要人类智能才能完成的任务上表现出智能行为的一类技术。无论是写死的逻辑规则(如下棋程序的评估函数),还是复杂的神经网络,只要它能在相应任务上给出通常要人来做才行的结果,从工程角度就算人工智能。所以图灵测试那类"只看行为、不看内部"的判据,长期是 AI 的操作性定义。但要区分模拟(simulation)与实现(realization):模拟是"做出像的样子",实现是"真的有"。
2026-10-30 11:52:48
160
原创 【Linux网络】守护进程---进程组、作业
本文介绍了Linux网络基础中的进程组、作业控制与守护进程机制。通过分析进程组(PGID)、会话(SID)及终端关系,阐明了前台/后台作业的切换原理,并详细讲解了守护进程的创建流程:先fork子进程,再调用setsid脱离终端,最后通过修改工作目录、重定向I/O等步骤实现长期后台运行。文中还结合代码示例说明了守护进程化的核心步骤,强调其在系统服务中的重要性。
2026-10-30 11:36:24
209
原创 【Linux网络】传输层协议UDP、报文封装过程
本文系统讲解了Linux网络中的UDP协议基础知识点:涵盖知名端口号分类(0-1023)、UDP报文格式(8字节固定头、源/目的端口、长度、校验和)、面向报文特性(无粘包问题)、无连接与不可靠性(尽最大努力交付)、全双工通信及报文封装与读取机制。通过sk_buff结构体管理内存缓冲区,深入剖析了数据从应用层到链路层的封装过程与内核接收流程,帮助理解UDP在实时性场景中的高效应用。
2026-10-28 12:33:32
193
1
原创 【Linux网络】HTTPS协议,数据摘要、签名、证书
HTTPS 协议实际上是在 HTTP 协议的基础之上,引入了 TLS/SSL 协议进行了一层加密,让数据能够相对安全地进行传递。它的默认(约定)端口是 443。数据从发送方应用层到传输层需要进行加密,同样接收方从传输层到应用层就需要进行解密。数据摘要,是将任意大小的数据通过单向散列函数(Hash 函数)计算,生成一段固定长度的数据摘要。在理论上,每一份不同的数据生成的摘要极大概率是不同的;一份数据哪怕只有极其微小的变动,生成的数据摘要也会天差地别(这叫雪崩效应)。
2026-10-27 12:38:01
107
1
原创 【Linux网络】会话管理session与Cookie
本文介绍了Cookie与Session机制在实现用户状态保持中的作用。早期纯Cookie方案存在安全风险,易被窃取或篡改;引入Session后,服务端存储用户信息并生成唯一session_id,客户端仅携带该标识,提升安全性。尽管仍可能面临session_id泄露问题,但结合风控策略可有效防范。同时,Cookie的过期时间机制确保了会话自动失效,类比酒店房卡,既便捷又可控。
2026-10-25 01:49:15
65
1
原创 【Linux网络】应用层协议HTTP
本文系统介绍了Linux网络中的HTTP基础知识点,涵盖URL与URI区别、域名解析机制、HTTP/HTTPS安全原理,以及请求响应报文结构。重点解析了URL组成(协议、主机、路径、查询参数、片段标识符)及编码规则,详述了HTTP请求行、首部、正文与响应状态行、头部、正文的格式规范,并结合实例说明了常见状态码、Content-Type作用及无正文响应场景,帮助读者深入理解网页通信底层逻辑。
2026-10-25 00:02:24
238
1
原创 【Linux网络】应用层自定义协议与序列化(1)TCP发送、接受缓冲区,自定义协议
本文系统讲解了Linux网络编程中应用层自定义协议的核心知识点,涵盖TCP全双工机制、粘包/半包问题及其解决方案。重点阐述了通过“长度头+数据体”等方法定义消息边界,并引入序列化与反序列化实现跨平台数据传输。结合JsonCpp库,介绍了toStyledString、FastWriter、StreamWriterBuilder等多种序列化方式,强调了自定义协议在保障通信可靠性与可扩展性中的关键作用,适用于网络编程实践与项目开发。
2026-10-16 12:52:54
188
1
原创 【Linux网络】_tcp_socket(初识)
本文介绍了Linux网络编程中TCP通信的基础知识,重点讲解了listen、accept、read/write和connect等核心函数的使用与原理。通过餐厅服务类比,形象说明了监听套接字与通信套接字的区别:前者负责接收连接请求,后者专用于与客户端数据交互。文中还结合代码实例,展示了TCP回响服务器的多进程、多线程及进程池实现方式,帮助理解TCP面向连接的通信机制。
2026-10-11 22:23:34
118
1
原创 【Linux网络】_udp_socket(认识)
本文系统讲解了Linux网络编程中UDP服务器的基础知识,涵盖socket创建、地址绑定(bind)、数据收发(recvfrom/sendto)及IP地址类型(本地回环、局域网、公网、0.0.0.0)的使用场景。重点解析了服务端需显式绑定地址而客户端通常由系统自动分配端口的差异,并通过v3版本引入InetAddr与UserManager类实现多客户端管理与线程安全的消息广播机制,为构建可扩展的聊天服务器奠定基础。
2026-10-10 12:15:28
121
1
原创 【Linux网络】网络基础_协议、网络传输基本流程
本文系统介绍了网络通信基础,包括OSI七层模型与TCP/IP协议栈的对应关系,重点分析了局域网通信和跨网络传输的核心机制。通过对比MAC地址(物理寻址)和IP地址(逻辑寻址)的作用,解释了数据封装/解封装流程及路由器在跨网段传输中的关键角色。最后探讨了端口号定位进程的原理,以及网络字节序转换的必要性,并对TCP/UDP协议特性进行对比,为Socket编程奠定理论基础。全文通过生活化类比(如快递中转、教室点名)帮助理解复杂网络概念,突出协议分层解决特定问题的设计思想。
2026-06-04 21:04:50
234
1
原创 【Linux】线程同步与互斥_死锁
本文介绍了Linux系统中的线程安全与重入问题、死锁及其避免方法。线程安全指多线程并发执行时程序能正确运行,而重入问题涉及函数能否被多个执行流同时调用。可重入函数通常是线程安全的,但线程安全函数不一定是可重入的。死锁是多个线程因互相持有对方所需锁而无限阻塞的现象,其产生需满足互斥、请求与保持、不剥夺和循环等待四个条件。避免死锁可通过破坏任一条件实现,如固定锁申请顺序。STL容器和智能指针管理的对象本身不具备线程安全性,需加锁保护。
2026-04-20 21:20:26
382
2
原创 【Linux】线程同步与互斥_日志与线程池
本文介绍了日志系统在工程项目中的重要性,详细说明了日志格式规范及其实现方法。日志应包含时间、等级、进程ID、文件名、行号等信息,通过gettimeofday获取时间戳,使用localtime_r转换为可读格式。文章提供了C++实现方案,采用策略模式支持控制台和文件两种输出方式,包含线程安全的同步机制。FileLogStrategy类实现了日志文件的自动创建和管理功能,确保日志记录的完整性和可靠性。该日志系统设计可用于高效调试和问题排查。
2026-04-16 21:24:04
454
1
原创 【Linux】线程互斥与同步_同步(2)_环形队列
本文介绍了Linux系统中POSIX信号量的使用方法及其在线程同步中的应用。主要内容包括: POSIX信号量接口说明: sem_init/destroy用于初始化和销毁信号量 sem_wait实现P操作(信号量-1) sem_post实现V操作(信号量+1) 基于环形队列的生产者消费者模型实现: 使用两个信号量分别表示数据数量和空格数量 生产者通过P操作申请空格资源,V操作释放数据资源 消费者通过P操作申请数据资源,V操作释放空格资源 通过互斥锁保护临界区,实现线程安全 该模型利用信号量机制实现了线程间的高
2026-04-14 17:03:46
430
2
原创 【Linux】线程同步与互斥_同步(1)
本文介绍了Linux系统中线程同步的相关概念,重点讲解了生产者消费者模型(CP模型)及其实现机制。文章首先阐述了线程饥饿和线程同步的基本概念,通过超市购物的类比解释了CP模型的三个核心关系(生产者-生产者互斥、消费者-消费者互斥、生产者-消费者同步+互斥)及其解耦、并发和削峰填谷三大优势。 随后详细介绍了条件变量这一关键同步工具,解释了其"铃铛+等待队列"的工作机制如何解决线程忙等问题,并分析了pthread_cond_wait等接口的设计原理,包括为何需要传入互斥锁、为何使用while
2026-04-09 23:14:45
504
1
原创 【Linux】线程互斥与同步_线程互斥
本文主要讲解 Linux 下线程互斥核心知识点,围绕多线程并发访问共享资源引发的数据安全问题展开,介绍互斥锁(互斥量 mutex)的原理、接口使用、底层实现与规范封装:明确互斥、临界资源、临界区、原子性核心概念,通过多线程抢票代码示例,说明if(ticket>0)判断与ticket--操作因非原子性引发票数异常的根本原因。讲解 POSIX 互斥量的静态 / 动态初始化、加锁(lock/trylock)、解锁及销毁接口,说明锁的定义规范、锁粒度对效率的影响、锁操作的原子性与线程遵守规则。剖析互斥锁底层实
2026-04-07 19:14:33
516
1
原创 【Linux】线程概念与控制(4)_线程封装
文章摘要: 本文介绍了Linux线程编程的实现方法,重点讲解了基于pthread封装的C++线程类设计。主要内容包括:1)通过Thread类封装线程创建、运行状态管理及资源回收功能;2)使用静态成员函数解决线程入口函数与类成员函数的兼容性问题;3)采用模板技术实现线程参数传递。文中提供了完整的代码实现,展示了如何通过回调函数机制执行线程任务,并处理线程的joinable/detach状态转换。该封装方案简化了原生pthread接口的使用复杂度,为C++多线程开发提供了更便捷的编程范式。
2026-04-06 22:38:55
533
1
原创 【Linux】线程概念与控制(3)_地址空间布局
本文介绍了Linux系统中线程ID的本质和进程地址空间布局。主要内容包括:1)pthread_create返回的线程ID实际上是用户态虚拟地址,指向glibc内部的struct pthread结构体;2)该结构体包含线程运行所需的完整上下文信息,通过mmap分配在进程地址空间的mmap区域;3)线程栈位于mmap匿名区,与主线程栈独立;4)线程等待机制的必要性在于回收线程资源防止内存泄漏;5)线程属性封装在pthread_attr_t结构体中;6)C++11线程库跨平台实现原理。文章通过内存布局图和代码示例
2026-04-04 23:30:40
395
1
原创 【Linux】进程概念与控制(2)_进程控制
本文介绍了Linux系统中线程的基本概念与操作。主要内容包括:POSIX线程库的使用方法,线程创建函数pthread_create的参数说明及示例代码,线程资源共享导致的参数传递问题及其解决方案,以及线程终止的三种方法(正常return、pthread_exit、pthread_cancel)。文章通过具体代码示例演示了多线程编程中的常见问题,如线程间资源共享导致的数据覆盖问题,并提供了使用动态内存分配和容器保存线程ID的解决方案。最后简要说明了线程并发执行同一函数时的线程安全问题。
2026-04-02 21:32:44
454
1
原创 【Linux】线程概念与控制(1)_线程概念_分页式储存管理
本文主要介绍了Linux系统中的线程原理和分页式存储管理机制。在Linux中,线程被视为轻量级进程,由task_struct结构管理,CPU调度的基本单位是线程而非进程。文章通过代码示例展示了多线程的运行方式,并解释了线程与进程的关系。 在内存管理部分,详细阐述了物理内存被划分为4KB大小的页框,通过struct page结构进行管理。重点讲解了二级页表结构(页目录表和页表)的工作原理,以及虚拟地址到物理地址的转换过程。文章还介绍了MMU硬件单元的作用和TLB快表机制,解释了操作系统如何高效管理内存资源。
2026-04-01 21:36:58
471
1
原创 【Linux】进程信号(4)_信号捕捉_内核态与用户态
本文摘要: 内核态与用户态:进程执行用户代码时处于用户态(CPL=3),进入系统调用/中断时切换为内核态(CPL=0)。所有进程共享内核空间映射,但拥有独立的用户空间页表。 sigaction接口:比signal更强大的信号处理接口,通过sa_mask可指定处理信号时额外阻塞的信号集合,防止信号处理函数被重入调用。 可重入函数:可安全重入的函数称为可重入函数,若函数涉及全局资源操作(如malloc/标准I/O)则不可重入,重入可能导致数据错乱。 volatile关键字:强制CPU直接从内存读写变量,避免编译
2026-03-30 22:46:55
496
2
原创 【Linux】进程信号(3)_信号捕捉_中断
本文介绍了Linux系统中信号处理的相关知识。主要内容包括:1) 信号捕捉流程,当系统从内核态返回用户态时会检测和处理信号;2) 硬件中断机制,外设通过中断控制器向CPU发送中断请求;3) 时钟中断,操作系统通过周期性时钟中断实现时间管理;4) 操作系统本质是一个等待中断的死循环;5) 软中断机制,通过特殊汇编指令触发系统调用。文章通过图示详细说明了信号处理过程中用户态和内核态的切换流程,以及硬件中断和时钟中断的工作原理。
2026-03-26 23:01:59
434
1
原创 【Linux】进程信号(2)_信号保存
本文介绍了Linux系统中信号保存的相关概念和机制。主要内容包括: 信号处理的核心概念:信号递达、未决和阻塞状态的区别,以及它们在进程task_struct中的三张表(handler、pending和block表)的实现原理。 信号集的底层实现:pending表和block表都是使用sigset_t类型的位图结构,handler表是函数指针数组。 信号集操作函数:详细介绍了sigemptyset、sigfillset等5个基础信号集操作函数,以及sigprocmask和sigpending这两个系统调用接口
2026-03-25 20:22:38
375
1
原创 【Linux】进程信号(1)_信号产生
本文介绍了Linux系统中信号的概念、生命周期及产生方式。信号是一种异步事件通知机制,用于进程间通信,其处理方式包括默认、忽略和自定义三种。信号的生命周期分为产生、保存和处理三个阶段。文章详细讲解了如何通过系统命令、键盘输入、硬件异常等方式触发信号,并介绍了signal函数用于自定义信号处理方式。此外,还解释了硬件异常(如除0错误和野指针)如何通过内核转换为终止信号发送给进程。信号最终会被记录在进程的task_struct结构体中,内核使用位图来存储待处理信号状态。
2026-03-24 17:04:18
1076
2
原创 【Linux】进程间通信(5)_消息队列与信号量
消息队列提供了从一个进程向另一个进程发送一块数据的方法,传输的是一整块数据,它面向的不是字节流,而是一条一条的消息(数据块),它是面向消息的,以数据块为单位传递数据。消息队列本质是内核维护的队列结构,内核会为每个消息队列维护一个队列头(核心元数据结构体),用来记录该队列的关键信息(如权限、消息数量、队列大小、最后操作时间等)。每个要传递的消息都会成为消息队列的一个节点,且每个节点都包含消息类型。
2026-03-23 11:36:30
418
1
原创 【Linux】进程间通信(4)_system V共享内存
本文介绍了Linux系统中共享内存(Shared Memory)的基本原理和使用方法。 共享内存原理: 在物理内存中开辟共享区域,挂载到各进程虚拟地址空间的共享区 多个进程通过映射同一物理内存块实现通信 操作系统通过"先描述再组织"管理多个共享内存 共享内存使用: 创建:使用shmget函数,需指定键值、大小和权限标志 查看:通过ipcs -m命令或shmctl函数获取状态信息 删除:使用ipcrm命令或shmctl函数(IPC_RMID) 挂接:使用shmat函数将共享内存映射到进程地
2026-03-18 13:17:26
408
原创 【Linux】进程间通信(3)_命名管道
本文介绍了Linux系统中命名管道的概念及使用方法。命名管道主要用于无血缘关系进程间的通信,相比匿名管道,它以管道文件的形式存在于磁盘中。文章详细讲解了如何通过mkfifo命令或函数创建命名管道,并提供了C++代码示例实现客户端和服务端进程间的通信。关键点包括:管道文件的创建与删除、读写模式打开的阻塞特性、以及进程间通过共享文件实现通信的机制。代码示例展示了完整的命名管道通信流程,包括管道的创建、打开、读写操作和删除。
2026-03-16 21:47:37
388
原创 【Linux】进程间通信(2)_进程池
本文介绍了Linux进程池的实现原理与代码示例。进程池通过预先创建一组子进程并建立独立管道通信,实现任务的高效分发。父进程通过管道向指定子进程发送任务码,子进程阻塞读取管道并执行对应任务。代码展示了进程池的轮询调度模式,包含任务定义、管道通信、子进程管理等功能模块,支持动态任务分配和子进程回收。这种设计避免了频繁创建进程的开销,提高了系统资源利用率。
2026-03-16 00:24:12
374
原创 【Linux】进程间通信(1)_匿名管道
摘要:Linux进程间通信之匿名管道 本文介绍了Linux系统中进程间通信(IPC)的基本概念,重点讲解了匿名管道的实现原理和使用方法。主要内容包括: 进程通信概述:进程间通信是为了实现数据传输、资源共享等目的,本质是让不同进程访问同一块公共资源。 匿名管道原理: 基于文件系统机制实现,父子进程通过共享的内核缓冲区进行通信 管道是单向通信,数据只能从一端流向另一端 通过pipe系统调用创建,返回读端(fd[0])和写端(fd[1])两个文件描述符 管道使用示例: 父子进程分别关闭不需要的端口 子进程写入数据
2026-03-15 01:07:05
382
1
原创 【Linux】库制作与原理(3)_动静态库的链接过程
本文介绍了Linux系统中静态链接与动态链接的核心原理及实现过程。静态链接通过合并.o文件、重定位函数地址实现,将代码直接嵌入可执行文件;动态链接则采用运行时加载机制,通过全局偏移量表(GOT)实现函数地址的动态解析。文章详细阐述了两种链接方式的工作流程:静态链接完成地址重定位和段合并,动态链接通过"库基址+偏移量"计算函数地址,并利用GOT表实现代码区到共享区的跳转。特别强调了动态库的共享特性——同一份物理内存可映射到多个进程空间,以及动态链接的延迟绑定机制。通过反汇编分析直观展示了链
2026-03-11 20:51:46
430
1
原创 【Linux】库制作与原理(2)_ELF格式
本文介绍了Linux系统中ELF文件格式及其关键组成部分,包括ELF头、程序头表、节头表和节,并解释了它们在程序编译、链接和加载过程中的作用。文章详细分析了ELF文件的加载和执行机制,以及动态库的共享内存映射原理,帮助读者理解二进制文件在Linux系统中的组织方式和运行机制。通过命令示例展示了如何查看ELF文件的结构信息,并阐述了虚拟地址空间的管理逻辑。全文以技术解析为主,适合对Linux系统底层原理感兴趣的读者阅读。
2026-03-10 22:06:45
453
1
原创 【Linux】库制作与原理(1)_库
本文介绍了Linux系统中库的制作与原理。主要内容包括:1. 库的分类(静态库.a和动态库.so)及其区别,动态链接节省空间但依赖外部库,静态链接体积大但独立运行;2. 库的本质是.o文件的集合,通过头文件提供函数声明;3. 静态库制作使用ar命令打包.o文件,动态库使用gcc的-fPIC和-shared选项;4. 使用库时需指定库名(-l)和路径(-L),动态库运行时还需解决查找问题,可通过拷贝、软链接或设置LD_LIBRARY_PATH环境变量实现。文章通过生动比喻和详细命令示例,帮助读者理解Linux
2026-03-09 21:35:47
485
2
原创 【Linux】Ext系列文件系统_文件系统
本文深入介绍了Linux系统中Ext2文件系统的核心原理与工作机制。文章首先阐述了"块"的概念及其在文件存取中的重要性,随后详细解析了磁盘分区与分组的组织结构。重点分析了块组内部6个关键区域的功能:数据区(Data Blocks和inode Table)负责存储文件内容与属性;管理区(Data Bitmap、inode Bitmap、GDT和Super Block)则负责资源管理与元数据存储。文章还探讨了文件创建、删除、修改等操作在文件系统中的实现原理,揭示了文件名与inode编号的映射
2026-03-09 11:26:53
418
1
原创 【Linux】Ext系列文件系统_磁盘介绍
本文介绍了Linux系统中Ext文件系统相关的磁盘基础知识。主要内容包括:1)磁盘的物理结构,如盘片、磁头、主轴等部件;2)磁盘的存储结构,包括磁道、扇区、柱面等概念;3)磁盘的逻辑结构,重点讲解了CHS寻址方式和LBA线性地址;4)CHS地址与LBA地址之间的转换方法。文章通过生动的图示和比喻,帮助读者理解磁盘的工作原理和数据存储方式,为后续学习文件系统打下基础。
2026-03-05 21:42:58
463
3
原创 【Linux】基础IO_缓冲区
本文介绍了Linux系统中关于基础I/O的知识点,重点探讨了缓冲区的概念和工作机制。文章首先解释了文件打开和读写的基本过程,指出CPU通过内核缓冲区访问文件内容。随后详细分析了内核文件缓冲区和语言级缓冲区的区别,强调语言级缓冲区通过减少系统调用次数来提高效率。文中通过代码示例展示了缓冲区刷新的不同情况,包括进程结束时自动刷新、显示器文件的行缓冲和普通文件的全缓冲。最后,作者简要说明了内核文件缓冲区的刷新机制取决于操作系统,并提到可以使用fsync()系统调用实现立即刷新。文章通过生动的比喻和代码示例,帮助读
2026-03-04 17:59:59
456
2
原创 【Linux】fd_重定向本质
本文介绍了Linux系统中基础IO的相关知识点。首先讲解了文件描述符的分配规则,通过实验验证了最小可用原则。然后深入探讨了重定向的本质,即通过替换标准输入输出流对应的文件描述符来实现对不同文件的IO操作。文章还介绍了dup2系统调用的使用方法,它可以更高效地实现文件描述符的覆盖。最后从操作系统角度阐述了"一切皆文件"的设计理念,解释了如何通过struct_file和operations模块实现对不同硬件设备的统一管理。这些内容为理解Linux系统IO机制提供了基础认知。
2026-02-11 21:25:02
641
2
原创 【Linux】基础IO(1)文件、fd
本文介绍了Linux系统中的基础IO知识,主要包括文件概念、访问方式和管理机制。文章首先解释了文件的本质是内容加属性,并说明访问文件需要路径或进程工作目录。重点讲解了文件描述符(fd)的概念,指出进程默认打开三个标准文件流(0-2),并通过代码示例演示了如何使用系统调用open/read/write操作文件。还详细对比了C语言fopen与系统open接口的区别,分析了不同文件打开模式的特点。最后从系统角度阐述了文件管理的"先描述再组织"原则,帮助读者深入理解Linux文件系统的底层机制。
2026-01-08 18:08:49
807
26
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅