- 博客(67)
- 收藏
- 关注
原创 Linux内核驱动——DHT11 温湿度传感器驱动实现
本文介绍了DHT11温湿度传感器在Linux内核中的驱动实现方案。DHT11采用单总线通信协议,测量范围湿度20-90%RH(±5%RH精度),温度0-50℃(±2℃精度),最高采样频率1Hz。驱动采用PlatformDriver+MiscDevice架构,实现了完整的时序控制逻辑,包括起始信号发送、从机响应检测、40位数据读取等核心功能。应用层通过/dev/dht11设备文件调用驱动接口,读取5字节数据并解析温湿度值。该方案实现了硬件解耦、精确时序控制,为嵌入式系统提供了可靠的温湿度监测解决方案。
2026-02-11 19:29:23
1088
原创 Linux内核驱动——中断子系统与 I2C 子系统
本文介绍了Linux内核中的中断子系统和I2C子系统架构及其实现。中断子系统采用"顶半部+底半部"设计,顶半部快速响应中断,底半部处理耗时操作,支持tasklet(不可休眠)和workqueue(可休眠)两种实现方式。I2C子系统采用分层设计,包含总线驱动层、核心层和设备驱动层,以LM75温度传感器为例展示了设备树配置、驱动注册、数据传输和应用层数据解析的全流程。两个子系统可结合使用实现高效的事件触发和通信机制,开发时需注意资源管理、阻塞处理和数据结构配置等关键点。
2026-02-11 00:15:00
785
原创 Linux内核驱动——设备树原理与应用
本文介绍了Linux设备树在嵌入式系统中的应用。设备树通过.dts源文件和.dtb二进制文件实现硬件描述与内核代码分离,提高系统灵活性。详细解析了设备树节点结构、关键属性和引脚控制配置方法,对比了传统字符设备驱动和Platform标准驱动的优缺点。重点阐述了驱动与设备树的匹配机制,以及基于GPIO子系统的规范开发流程。最后总结了设备树在提高内核可移植性和可维护性方面的重要作用,建议优先采用Platform驱动模型和GPIO子系统进行开发。
2026-02-08 15:58:36
1260
原创 Linux内核驱动——ioctl 控制与 Platform 总线驱动
本文详细介绍了Linux内核中的ioctl系统调用和Platform总线驱动模型。ioctl通过32位命令参数实现设备控制,包含设备类型、命令编号、数据流向和大小四个字段。Platform总线为嵌入式设备提供通用管理框架,通过设备-驱动匹配机制简化资源管理。文章以LED驱动为例,展示了设备端资源声明、驱动端硬件映射和ioctl命令处理的全过程,包括物理地址到虚拟地址转换、GPIO寄存器操作等关键步骤。这种架构实现了设备与驱动解耦,提高了代码可移植性和维护性,是嵌入式外设驱动开发的典型模式。
2026-02-06 19:48:48
793
原创 Linux内核驱动——杂项设备驱动与内核模块编译
本文介绍了Linux内核驱动开发中的内存空间分布和杂项设备驱动实现。重点分析了32位系统中1G内核空间与3G用户空间的划分,以及杂项设备作为字符设备子类的优势(固定主设备号、动态次设备号)。通过IMX6ULL开发板的LED驱动实例,详细展示了从硬件地址定义、寄存器映射、文件操作接口实现到模块编译加载的全过程。最后通过应用层测试程序验证了驱动功能,实现了LED的闪烁控制。该案例完整呈现了Linux内核驱动开发的关键技术点,包括内存管理、设备注册、硬件操作和用户态交互等核心内容。
2026-02-06 18:37:59
703
原创 Linux内核驱动——内核编译与设备驱动
本文详细介绍了Linux内核驱动开发的全流程。主要内容包括:1.内核编译过程,从源码获取、配置到编译和部署;2.设备驱动分类及架构,包括字符设备、块设备和网络设备;3.设备号管理和设备节点创建方法;4.通过demo_driver.c和demo1.c实例,演示了字符设备驱动的开发流程和测试方法。文章完整呈现了从内核编译到驱动开发的实践过程,为Linux驱动开发提供了系统指导。
2026-02-04 19:30:46
843
原创 Linux内核驱动——Ubuntu 网络启动环境配置与操作
摘要:本文详细介绍了Linux系统的两种启动方式(本地SD卡启动和网络启动)及Ubuntu环境配置方法。主要内容包括:1)Linux启动流程解析,涵盖Bootloader初始化、内核加载及根文件系统挂载;2)Ubuntu下TFTP/NFS服务配置步骤,用于网络传输内核和共享根文件系统;3)U-Boot常用命令详解,包括网络配置、镜像下载和内核启动;4)bootargs参数配置及内核恐慌问题排查方法。文章为嵌入式开发提供了完整的网络启动解决方案和调试指南,适用于ARM开发板的交叉开发环境搭建。
2026-02-02 19:39:41
1404
原创 Linux内核驱动——基础概念与开发环境搭建
摘要:Linux内核驱动开发需要掌握C语言核心关键字(static、extern、const、volatile)和指针操作技巧,理解嵌入式系统内存模型(RAM、ROM、Flash特性)。开发流程需了解Linux启动三阶段:Bootloader初始化硬件并加载内核→内核管理系统资源→根文件系统提供运行环境。实操环节推荐搭建NFS共享环境,实现Ubuntu主机与ARM开发板间的文件共享,提升驱动开发调试效率。入门关键是通过"夯实基础+搭建环境"来建立驱动开发能力框架。
2026-01-31 20:18:29
1089
原创 ARM架构——SPI 通信协议与多点触控技术
本文介绍了SPI通信协议和多点触控技术的实现方法。SPI采用主从模式,通过CS、SCLK、MOSI和MISO四线实现全双工通信,需配置CPOL/CPHA时序参数。文章详细阐述了ADLX345加速度传感器的SPI驱动实现,包括初始化、读写封装和数据采集。同时介绍了GT9147多点触控芯片的I2C驱动实现,重点分析了中断驱动的触摸事件处理机制。最后总结了ARM架构下SPI通信和多点触控的关键技术要点,强调硬件-软件协同在嵌入式开发中的重要性。
2026-01-29 19:49:27
1053
原创 ARM架构——LCD 显示与 PWM 背光控制
摘要:本文详细介绍了TFT-LCD显示屏在IMX6ULL系统中的驱动实现。主要内容包括:1) LCD基本构成和工作原理,重点解析800×480分辨率RGB888格式的时序参数;2) LCD驱动实现方法,涵盖引脚复用配置、PLL5时钟生成、LCDIF模块初始化等关键步骤;3) 基于帧缓存的显示功能实现;4) PWM背光控制原理及实现,通过中断服务函数动态调节占空比。文章完整呈现了从硬件配置到软件驱动的LCD显示系统开发流程,突出了时序参数匹配、时钟稳定性和中断控制等关键技术要点。
2026-01-28 19:41:36
1138
原创 ARM架构——ADC 模数转换器
本文介绍了ADC(模数转换器)的基础概念及其在IMX6ULL处理器中的应用。主要内容包括:逐次逼近型ADC的工作原理,关键参数如量程、分辨率和精度的解析;IMX6ULL的ADC模块硬件特性与寄存器配置方法;驱动代码实现中的校准、初始化和采样转换函数;以及常见滤波算法对比和均值滤波优化实现。文章通过理论讲解与代码实例相结合的方式,系统阐述了从模拟信号采集到数字信号处理的完整流程,为嵌入式系统开发提供了实用指导。
2026-01-27 19:13:56
1031
原创 ARM架构——I2C 通信协议
I2C是一种高效的同步串行通信协议,采用两线制(SDA+SCL)和主从架构,广泛应用于嵌入式系统外设通信。文章详细解析了I2C的核心特性:开漏输出与上拉电阻实现多设备共享、线与逻辑、关键通信时序(起始/终止信号、数据传输规则、应答机制)。基于IMX6ULL平台,实现了完整的I2C驱动开发,包括寄存器定义、初始化、读写操作函数封装,并针对AT24C02和LM75传感器进行了优化适配。驱动框架支持多字节寄存器地址和通用transfer接口,可直接移植到多数I2C设备,为嵌入式开发提供了实用解决方案。
2026-01-26 18:30:44
1230
原创 ARM架构——UART 串口通信详解
本文详细介绍了IMX6ULL开发板的UART串口通信实现过程。首先阐述了串口通信的基础概念,包括串行/并行通信、同步/异步通信方式及常见标准(TTL、RS232、RS485)。然后重点讲解了硬件连接方案、核心芯片功能及寄存器配置方法。在代码实现部分,详细说明了初始化流程、数据收发函数编写,以及标准I/O库的移植步骤,最后通过两数相加实例验证了功能实现。文章强调UART通信作为嵌入式开发基础技能的重要性,为后续复杂通信协议开发奠定了基础。整个开发过程涵盖了从理论到实践的完整链路,具有较高的实用参考价值。
2026-01-23 19:37:37
1483
原创 ARM架构——时钟系统与定时器详解
本文详细介绍了ARM架构的时钟系统和定时器模块。时钟系统由时钟源、锁相环、分频器等组件构成时钟树,为系统提供时序基准,文中给出了IMX6ULL处理器的时钟初始化代码实现。定时器部分重点讲解了EPIT周期中断定时器和GPT通用定时器的工作原理及配置方法,包括1秒中断和微秒级延时的具体实现。这些核心组件对嵌入式系统的精确时序控制和性能优化至关重要,文中通过寄存器级配置示例展示了时钟频率精确控制和定时器精准工作的实践方法。
2026-01-22 20:36:06
1189
原创 ARM架构——中断系统详解
本文介绍了从轮询到中断的转变,分析了轮询方式的实时性缺陷,详细阐述了ARM中断系统架构,包括GIC控制器分类、CP15协处理器等硬件机制。通过代码实现展示了中断驱动的按键控制方案,采用向量表管理、GPIO中断配置等技术,实现了LED和蜂鸣器的中断响应。设计遵循低耦合和开闭原则,使系统具有良好扩展性。该方案解决了轮询实时性差的问题,为嵌入式系统中断处理提供了完整实现范例。
2026-01-21 20:24:44
938
原创 ARM架构——C 语言+SDK+BSP 实现 LED 点灯与蜂鸣器驱动
摘要:本文详细解析了C语言替代汇编开发ARM裸机程序的技术方案。通过volatile关键字确保寄存器访问可靠性,采用宏定义或结构体方式映射硬件寄存器地址,并展示了LED驱动的基础实现。重点介绍了SDK移植方法,利用官方封装的结构体和API简化开发。提出BSP工程管理架构,将外设驱动模块化封装,实现代码分层复用。同时阐述了链接脚本对内存布局的控制作用,以及优化后的Makefile构建流程。最终通过LED和蜂鸣器联动案例,验证了从寄存器操作到SDK应用、再到工程化管理的完整开发路径。
2026-01-20 22:00:59
1176
原创 ARM架构——用汇编语言点亮 LED
本文介绍了基于IMX6ULL-Mini开发板的LED控制实验。开发板搭载NXP i.MX6ULL Cortex-A7处理器,采用交叉编译工具链进行开发。通过汇编语言操作GPIO寄存器实现LED控制,包括复用功能配置、电气特性设置和方向配置三个步骤。详细阐述了汇编代码实现LED闪烁的逻辑,以及编译、链接和烧写过程。实验使用Makefile简化编译流程,最终通过SD卡启动方式验证LED闪烁效果。该实验展示了底层硬件控制的基本原理,为嵌入式开发提供了实践基础。
2026-01-20 20:05:49
898
原创 ARM架构——汇编语言
本文系统介绍了ARM汇编在嵌入式开发中的核心应用,重点包括:1. ARM汇编基础语法与伪操作指令,如段定义、程序入口标记等;2. 数据操作指令集,包括立即数处理、移位运算、算术逻辑运算;3. 流程控制实现方法,包括循环结构和条件判断;4. 函数调用机制,涵盖栈管理、现场保护和跳转指令;5. 汇编与C语言的互调技术;6. 工作模式切换和异常处理机制。文章通过具体代码示例详细说明了各关键技术的实现方法,并解答了常见问题,为嵌入式开发者提供了ARM汇编编程的实用指南。
2026-01-18 18:02:23
1269
原创 ARM架构——从嵌入式系统底层到指令执行解析
本文梳理ARM架构从嵌入式系统底层到指令执行的全链路核心要点。先阐述嵌入式系统与ARM架构的关联,解析硬件底层逻辑与处理器分类,对比CISC与RISC指令集差异。核心内容涵盖ARM 7种基本工作模式及Cortex-A特有的Hyp、Monitor扩展模式,详解37~40个32位寄存器的组织与模式关联,以及异常处理的硬件动作、向量表设计与恢复流程,同时剖析三级流水线、内存管理与程序执行机制,结合`iMX6ULL`开发板给出实践建议,助力构建ARM架构的系统性认知。
2026-01-16 21:07:14
1193
原创 51单片机——DS18B20 温度传感器
DS18B20是一款高精度数字温度传感器,采用单总线通信,仅需1根I/O线即可实现数据传输。其测温范围为-55℃~+125℃,在-10℃~+85℃范围内精度可达±0.5℃,支持9~12位可调分辨率(最高0.0625℃)。传感器内置64位唯一ROM序列号,支持多设备组网。工作时需严格遵循单总线协议,包括复位、写和读三种关键时序,精度要求达微秒级。温度数据以16位二进制补码存储,通过特定算法转换为实际温度值。电路设计需注意上拉电阻、供电方式选择和抗干扰措施,确保稳定通信。
2026-01-15 15:59:45
1648
原创 51单片机——UART 串口通信
UART是一种异步全双工串行通信接口,采用交叉接线方式(TXD-RXD互连)。其通信方式分为单工、半双工和全双工三种,遵循LSB优先传输规则。核心参数包括波特率、数据位、校验位和停止位,需通信双方一致。每帧数据包含起始位、数据位、校验位和停止位,支持奇偶校验检测奇数位错误。51单片机通过SCON、PCON寄存器及定时器1配置UART功能,其中定时器1作为波特率发生器需设为8位自动重载模式。通信中主机拥有控制权,从机仅响应指令。
2026-01-14 18:54:40
991
原创 51单片机——GPIO、按键、中断、定时器与PWM
本文系统介绍了51单片机常用外设接口及其工作原理。主要内容包括:1)GPIO的输入/输出模式分类及应用场景;2)独立按键的硬件连接、电平检测及消抖处理方法;3)中断系统的核心概念、处理流程及相关寄存器配置;4)定时器的工作原理和寄存器设置;5)PWM信号的周期、占空比概念及其在蜂鸣器驱动中的应用。重点阐述了GPIO作为单片机与外部设备交互的基础接口,以及中断机制在实时事件处理中的关键作用。全文通过硬件原理与软件配置相结合的方式,为51单片机外设开发提供了系统性技术参考。
2026-01-13 17:43:44
1076
原创 51单片机——从入门到实操
摘要:本文系统介绍了嵌入式系统的核心概念与51单片机开发基础。首先辨析了MCU、CPU、SOC等关键术语,详细解析了51单片机硬件结构、引脚功能及LED、数码管等外设原理。重点讲解了位运算在嵌入式编程中的应用,并完整演示了51单片机开发流程,包括Keil工程创建、程序下载及逻辑分析仪调试技巧。文章还总结了数码管动态显示原理、NPN三极管导通条件等核心知识点,为嵌入式系统入门学习提供了全面的技术指导。
2026-01-12 18:46:04
2242
原创 综合项目实战——电子商城信息查询系统
本文介绍了一个基于C语言开发的轻量级电子商城查询系统。该系统采用HTTP/1.1协议与SQLite数据库,实现了用户注册登录、商品模糊搜索和精确查询等核心功能。通过模块化设计,系统分为数据库层、功能层和网络交互层,包含请求解析、路由分发、URL编解码等关键模块。技术亮点包括手动解析HTTP协议、动态页面生成和特殊字符处理等。系统解决了传统商城查询效率低的问题,提供了统一的查询入口。未来可扩展购物车功能、优化前端界面并增强安全性。项目展示了如何用底层语言构建高效Web应用,为轻量级电商系统开发提供了实践参考。
2026-01-08 21:16:32
1105
原创 前端开发——HTML 网页开发基础
本文系统介绍HTML的基础知识,包括文档结构、常用标签和核心规范。主要内容:1.标准HTML文档结构包含DOCTYPE声明、html根元素、head元数据区和body可见内容区;2.详细讲解超链接、图片、表单等核心标签的用法及属性配置;3.强调HTML开发规范,包括语义化标签优先、属性引号统一、标签闭合和字符编码等要求;4.推荐W3School作为权威参考资源。为网页开发初学者提供清晰的实践指导。
2025-12-30 21:31:30
1244
原创 数据库——基础概念与 SQLite 实践
本文介绍了SQLite数据库的核心概念与应用。SQLite是一款轻量级嵌入式数据库,具有开源免费、跨平台兼容、文件型存储等特点,适用于移动端、嵌入式设备和小型工具等场景。文章详细讲解了SQLite的安装方法(Linux系统)、编译过程(C语言程序)以及常用操作指令和SQL语句,包括表结构操作和数据增删改查。最后通过C语言示例代码展示了如何连接SQLite数据库并执行SQL操作。SQLite以其轻量化、易部署的优势,成为嵌入式系统和小型应用数据管理的理想选择。
2025-12-30 00:39:48
1036
原创 Linux网络编程——IO多路复用
摘要:Linux IO多路复用技术通过单线程监听多个文件描述符(FD)实现高并发处理。select采用轮询机制,存在1024个FD限制和性能瓶颈;epoll采用事件驱动机制,支持无限FD且性能更优。关键区别在于:select需要遍历FD集合,而epoll由内核主动上报就绪事件;select存在数据拷贝开销,epoll通过共享内存提升效率。两种模型分别通过select()/epoll_wait()函数实现阻塞等待,但epoll在管理大量连接时更具优势,是现代高并发系统的首选方案。
2025-12-26 21:36:07
974
原创 Linux网络编程——网络数据封装与 HTTP 协议
本文系统解析了网络数据传输流程及HTTP协议工作原理。首先阐述了TCP/IP分层模型中数据封装与拆包的机制,详细介绍了MAC头、IP头和TCP/UDP头的规范格式及其功能。其次讲解了Wireshark工具在网络数据包分析中的应用方法。最后重点剖析了HTTP协议的核心概念、通信流程及报文结构,包括请求报文和响应报文的组成要素。全文通过协议规范与实际工具相结合的方式,完整呈现了从底层数据传输到应用层通信的全过程。
2025-12-25 21:47:53
1145
原创 Linux网络编程——TCP 协议与通信实战
本文介绍了TCP通信的核心概念与应用。主要内容包括:1)三大通信模型(C/S、B/S、P2P)的特点与区别;2)TCP的核心特征:有连接、可靠传输、流式数据等;3)详细解析三次握手和四次挥手过程;4)TCP黏包问题及三种解决方案;5)Linux下TCP通信流程及相关函数说明;6)提供完整的服务端和客户端代码示例。文章系统性地阐述了TCP协议的工作原理和实际编程实现,对网络编程学习者具有实用参考价值。
2025-12-24 21:28:55
912
原创 Linux网络编程——从 OSI 到 UDP 通信实践
本文介绍了网络通信的分层模型和UDP编程实现。首先对比了OSI七层模型和TCP/IP四层模型,阐述了各层功能及常用协议。接着讲解了Linux网络配置命令和文件操作。重点解析了UDP通信的核心概念:Socket作为网络文件描述符实现数据传输,以及网络字节序转换的必要性。最后通过完整的服务端/客户端代码示例,演示了UDP通信流程:创建套接字、绑定地址、收发数据等关键步骤,并提供了编译运行方法。UDP无连接、低延迟的特性使其适用于音视频等实时性要求高的场景。
2025-12-23 23:57:59
1227
1
原创 Linux系统编程项目实战——基于 mplayer 的媒体文件播放控制系统
本文介绍了一个基于Linux系统编程的媒体播放控制系统,通过C语言实现mplayer播放器的自动化管理。系统采用FIFO命名管道进行进程通信,利用fork和execvp控制mplayer进程,支持播放列表管理、播放控制(暂停/继续、停止、切换)、参数调整(倍速、定位)和播放模式切换(循环/随机/单曲)等功能。核心设计包括:1)管道通信实现命令传输;2)进程控制分离播放逻辑;3)目录扫描构建播放列表;4)多种播放模式管理。系统展示了Linux系统编程在多媒体控制中的应用,为进一步扩展提供了基础框架。
2025-12-22 21:29:22
1034
原创 Linux系统编程——IPC进程间通信:信号通信与共享内存
本文介绍了Linux系统中的信号通信和共享内存两种进程间通信机制。信号通信部分阐述了信号的核心作用(异步通知)、发送接收流程,详细说明了常用信号的默认行为(终止/忽略/暂停进程),并重点解析了kill()和signal()两个核心函数的用法。共享内存部分系统性地讲解了申请、映射、读写、撤销等操作流程,对比了与管道的区别,详细介绍了ftok()、shmget()、shmat()等关键函数的使用方法。最后强调共享内存需要配合信号/信号量实现同步,并提供了常用的IPC资源管理命令。
2025-12-19 22:01:29
1274
原创 Linux系统编程——IPC进程间通信:管道
本文介绍了Linux系统中两种基础的进程间通信(IPC)方式:无名管道(pipe)和有名管道(FIFO)。无名管道仅支持具有亲缘关系的进程间通信,通过pipe()函数创建,随进程退出自动释放;有名管道则突破了亲缘关系限制,通过mkfifo()创建,在文件系统中可见,需要手动清理。两者均为半双工、基于队列的特殊文件,不支持定位操作。文章详细阐述了它们的核心特性、读写行为规则、编程顺序及核心函数,并通过示例代码演示了具体实现方法,最后对比了两者的主要差异,为Linux IPC编程提供了实用指导。
2025-12-18 22:14:57
766
原创 Linux系统编程——线程控制
本文介绍了多线程编程中的临界资源、线程安全问题及解决方案。临界资源是指多个线程共享的可读写资源,线程安全问题源于对临界资源的"穿插执行"导致数据不一致。文章重点阐述了互斥锁和信号量两种同步机制:互斥锁通过加锁/解锁实现临界区的独占访问,确保数据一致性;信号量通过P/V操作控制线程执行顺序,实现同步。此外,还分析了死锁产生的四个必要条件及预防方法。通过代码示例展示了pthread库中互斥锁和信号量的具体使用方法,为多线程编程提供了实践指导。
2025-12-17 20:05:22
1120
原创 Linux系统编程——线程
本文介绍了线程的基本概念、进程与线程的区别以及POSIX线程编程的核心函数。线程作为轻量级进程,依附于进程实现并发处理,共享进程资源但独立栈区。相比进程,线程创建开销小、并发度高,但稳定性较差。文章详细讲解了pthread_create()、pthread_self()、pthread_exit()等核心函数的使用方法,以及线程资源的两种回收方式:阻塞式(pthread_join)和分离式(pthread_detach)。最后提供了查看线程信息的常用命令,如ps -eLf等。
2025-12-16 19:04:38
963
原创 Linux系统编程——进程进阶:exec 族、system 与工作路径操作
摘要:本文介绍了Linux系统中进程管理的核心函数。exec族函数用于进程代码替换,包含execl、execv、execlp等变体,配合fork()使用可实现子进程执行新程序。system函数封装了fork()+exec,简化了Shell命令执行。此外还介绍了路径管理工具getcwd和chdir,分别用于获取当前工作目录和修改工作目录。这些函数共同构成了Linux进程控制和路径管理的基础工具集。
2025-12-15 19:42:29
657
原创 Linux系统编程——进程进阶:父子关系、终止与资源回收
本文摘要:本文系统讲解了进程终止的相关机制。主要内容包括:父子进程的写时复制关系;进程终止的8种场景(5种正常终止和3种异常终止);exit()和_exit()函数的区别(是否刷新缓存和执行清理函数);进程退出后可能出现的僵尸进程和孤儿进程状态;以及通过wait函数回收子进程资源的方法。重点阐述了exit()函数的工作原理和进程终止后的资源管理问题,为理解进程生命周期提供了全面的技术参考。
2025-12-13 17:12:12
1334
原创 Linux系统编程——进程
本文摘要: 进程是操作系统资源分配的基本单位,是程序的动态执行实例。Linux通过进程控制块(PCB/task_struct)管理进程,包含PID、状态、资源等核心信息。进程与程序的关键区别在于:进程是动态执行过程,具有生命周期和资源占用特性。Linux为每个进程分配独立的虚拟内存空间,包含代码段、堆栈等区域。进程可分为交互式、批处理和守护进程三类,具有运行、睡眠等五种状态。系统通过CFS调度器进行进程管理,采用fork()创建子进程并实现写时复制优化。文章还介绍了进程管理命令及fork()的使用注意事项。
2025-12-12 02:03:01
1485
原创 Linux系统编程——目录操作和Makefile
本文摘要:介绍了目录操作和Makefile的基本使用方法。目录操作部分详细说明了opendir、readdir、closedir三个核心函数的使用步骤和参数说明,用于遍历目录文件。Makefile部分讲解了三种编写方式:基础写法、使用内置变量简化、自定义变量优化,并说明了增量编译机制。通过Makefile可实现自动化编译和清理,提高开发效率。全文提供了实用的代码示例和详细注释,适合Linux系统编程初学者参考。
2025-12-10 19:48:00
1118
原创 Linux系统编程——从标准IO到文件IO
本文摘要:本文系统介绍了标准IO和文件IO的核心概念与操作。标准IO部分详解了系统默认的三个流指针(stdin/stdout/stderr)、三种缓存机制(行/全/无缓存)及文件定位函数(fseek/ftell/rewind)。文件IO部分对比了标准IO与文件IO的区别,重点阐述了文件IO的系统调用操作流程:通过open获取文件描述符,使用read/write进行文件读写,最后用close关闭文件。文章通过对比分析帮助读者理解两种IO方式的特性差异与应用场景,为Linux环境下的文件操作提供了实用指导。
2025-12-09 19:31:22
855
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅