自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 C语言游戏实战(12):植物大战僵尸(坤版)

本游戏使用C语言和easyx图形库编写,通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧,以及锻炼我们独立的项目开发能力,在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在区域内进行植物的放置和铲除等操作。不同的植物有不同的功能,在这里我们可以僵尸植物分为三大类:1. 生产型植物(如太阳花):这种植物的特点是在一定的时间生产出太阳,以增加太阳的产量。

2024-06-10 19:07:24 129668 189

原创 c语言游戏实战(10):坤坤的篮球回避秀

这款简易版的球球大作战是博主耗时两天半完成的,玩家需要控制坤坤在游戏界面上移动,来躲避游戏界面上方不断掉下来的篮球。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制球的移动。坤坤:玩家控制的坤坤可以在游戏界面内自由移动,按下特定的按键后可以跳跃。篮球:篮球在游戏界面的正上方源源不断地生成,并下降。

2024-06-04 20:09:21 30193 63

原创 C语言游戏实战(4):人生重开模拟器

人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。

2024-06-04 20:09:06 30673 31

原创 C语言游戏实战(9):球球大作战

这款简易版的球球大作战是一款单人游戏,玩家需要控制一个小球在地图上移动,吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解的基本概念和技巧。在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能:游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制球的移动。玩家小球:玩家控制的小球可以在游戏界面内自由移动,按下空格键可以加速。其他小球:其他小球又分为食物小球,和ai控制的小球。

2024-06-03 21:27:17 129643 133

原创 【C++】智能指针的使用及其原理

本文系统介绍了C++智能指针的使用与实现原理。首先通过内存泄漏案例展示了智能指针的必要性,分析了RAII设计思想在资源管理中的应用。详细讲解了标准库中的智能指针:auto_ptr(已废弃)、unique_ptr(独占所有权)、shared_ptr(共享所有权)和weak_ptr(解决循环引用)。文章重点剖析了shared_ptr的引用计数机制及其线程安全问题,并演示了如何通过weak_ptr解决循环引用导致的内存泄漏。最后介绍了智能指针的历史渊源(与Boost库的关系)以及内存泄漏的检测与防范方法。通过自定

2025-12-21 18:32:56 760

原创 【MySQL数据库】使用C语言连接

本文介绍了如何使用C语言通过MySQL Connector/C库连接和操作MySQL数据库。主要内容包括:1)准备工作,如MySQL服务验证和Connector/C库下载;2)库文件目录结构说明;3)测试连接验证库引入的方法;4)核心API接口详解,包括mysql_init()初始化、mysql_real_connect()连接、mysql_query()执行SQL、mysql_store_result()获取结果集等;5)结果集处理方法和事务操作;6)完整操作流程总结。文中还提供了解决中文乱码和动态库查找

2025-11-25 18:30:36 1037

原创 【MySQL数据库】用户管理

摘要:本文介绍了MySQL用户管理的基本操作,包括用户信息查看、创建、删除和密码修改。用户信息存储在mysql.user表中,创建用户需指定用户名、主机和密码。root用户可为其他用户授权和回收权限,授权语法为grant,回收语法为revoke。文章强调避免创建host为%的高风险用户,并提供了密码策略设置和权限刷新方法。通过具体案例演示了用户管理全流程,包括权限验证和回收效果检查。

2025-11-24 20:46:36 1264 1

原创 【MySQL数据库】视图

摘要:视图是数据库中的虚拟表,其内容由查询定义。创建语法为"CREATE VIEW 视图名 AS SELECT语句"。视图与基表数据相互影响,修改视图会影响基表,反之亦然。视图使用规则包括:名称必须唯一、数量无限制但不能添加索引、可提高安全性、ORDER BY可被覆盖等。视图常用于简化查询、提高数据安全性,并能与表联合使用。示例展示了创建员工部门视图、修改视图影响基表、以及基表变化影响视图的过程。

2025-11-24 20:21:10 313

原创 【MySQL数据库】事务

摘要:本文系统介绍了数据库事务的核心概念与实现机制。首先分析了不加事务控制的CURD操作可能引发的数据一致性、并发冲突等问题,包括原子性、并发干扰、数据持久性等问题。然后详细阐述了事务的ACID特性(原子性、一致性、隔离性、持久性)及其解决方案,并通过银行账户案例演示了事务操作方式。文章还深入讲解了MySQL的四种隔离级别(读未提交、读提交、可重复读、串行化)及其实现原理,特别分析了MVCC多版本并发控制机制如何通过隐藏字段、undo日志和ReadView实现无锁并发控制。最后指出事务本质上是为了简化应用层

2025-11-23 22:33:52 810

原创 【MySQL数据库】索引

文章摘要:本文系统讲解了MySQL索引的核心原理与实践应用。首先通过800万条数据测试对比了无索引查询(耗时4.93秒)与索引查询(毫秒级)的性能差异,揭示索引的价值。深入剖析磁盘IO机制,说明B+树索引通过16KB页单位减少IO次数的设计理念。详细解析了聚簇/非聚簇索引的结构差异,比较了InnoDB与MyISAM的存储实现。最后介绍了主键、唯一、普通、全文四种索引的创建方法,并总结索引创建原则:优先为高频查询字段建索引,避免为低区分度或频繁更新字段建索引。全文通过理论推导与实战演示相结合,帮助读者深入理解

2025-11-23 15:01:27 676

原创 【MySQL数据库】表的内连和外连

摘要:SQL表连接分为内连接和外连接。内连接通过WHERE或INNER JOIN筛选笛卡尔积,仅保留匹配记录(如查询SMITH及其部门)。外连接保留某表全部记录,包括无匹配项(显示为NULL):左外连接保证左表完整显示(如查询所有学生成绩,无成绩学生信息仍显示);右外连接保证右表完整显示(如显示所有成绩,包括无学生对应的成绩)。案例演示了部门与员工查询,通过左右外连接实现"显示无员工部门"的需求。两种外连接语法不同但效果可互换。

2025-11-22 00:38:11 379

原创 【MySQL数据库】复合查询

本文介绍了SQL查询的基本操作和高级技巧,主要包括单表查询、多表查询、自连接、子查询和合并查询。单表查询部分展示了条件筛选、排序、分组统计等基础操作。多表查询重点讲解了通过关联字段连接不同表的方法。自连接演示了同一张表的关联查询技巧。子查询部分详细说明了单行、多行、多列子查询的使用场景,以及from子句中的临时表应用。最后介绍了union和unionall合并查询结果的差异。全文通过具体案例展示了各种查询语法在企业管理系统中的实际应用。

2025-11-21 21:59:19 925

原创 【MySQL数据库】内置函数

本文介绍了MySQL中常用的日期、字符串和数学函数操作。日期函数部分展示了获取当前日期、时间、时间戳的方法,以及日期加减运算和日期差计算;字符串函数部分包括字符集查询、字符串拼接、长度计算、替换、截取等操作;数学函数则涵盖绝对值、取整、随机数等基本运算。文中还提供了两个案例:创建生日表记录当前日期,以及创建留言表并执行时间范围查询。这些函数为数据库操作提供了便捷的数据处理能力,是MySQL日常开发中的基础工具。

2025-11-21 17:08:55 371

原创 【MySQL数据库】基本查询

本文详细介绍了SQL的CRUD操作(创建、读取、更新、删除)及相关语法。主要内容包括: 创建操作(INSERT):单行/多行插入、全列/指定列插入、冲突处理(更新或替换) 查询操作(SELECT):基础查询、条件筛选(WHERE)、排序(ORDER BY)、分页(LIMIT)、聚合函数(COUNT/SUM/AVG等)和分组(GROUP BY) 更新操作(UPDATE):单列/多列更新、条件更新、批量更新 删除操作(DELETE):条件删除、全表删除与截断表(TRUNCATE)的区别 高级操作:插入查询结果、

2025-11-20 21:22:05 1422

原创 【MySQL数据库】表的约束

摘要:本文详细介绍了MySQL表约束的种类与应用,包括空属性(NOT NULL)、默认值(DEFAULT)、列描述(COMMENT)、零填充(ZEROFILL)、主键(PRIMARY KEY)、自增长(AUTO_INCREMENT)、唯一键(UNIQUE KEY)和外键(FOREIGN KEY)。重点阐述了主键和唯一键的区别:主键不可为空且唯一标识记录,唯一键可空但保证业务唯一性。通过创建班级、学生等案例演示了各种约束的实际应用,并展示了综合案例中如何通过约束保证商品销售系统的数据完整性。约束机制能有效规范

2025-11-20 00:12:07 813

原创 【MySQL数据库】数据类型

用于存储预定义的选项集合,enum 为 “单选”,set 为 “多选”。无法查询到所有包含 “登山” 的记录,需用。用于存储日期和时间,常用类型有。用于存储带小数点的数值,分为。用于存储文本数据,主要有。(定点数,高精度)。hobby='登山'

2025-11-18 23:35:46 774

原创 【MySQL数据库】操作库

MySQL数据库操作指南摘要 本文详细介绍了MySQL数据库的核心操作流程: 数据库操作:涵盖创建(CREATE)、修改(ALTER)、删除(DROP)数据库,以及字符集(CHARACTER SET)和校验规则(COLLATE)的设置方法 表操作:包括表创建(CREATE TABLE)、结构修改(ALTER TABLE)、删除(DROP TABLE)等操作,详细说明了字段定义、数据类型和存储引擎(ENGINE)选择 数据安全:重点讲解了数据库备份(mysqldump)与恢复(SOURCE)操作 特殊功能:介

2025-11-18 12:43:13 920

原创 【MySQL数据库】数据库基础

本文介绍了MySQL数据库的基本使用与管理。主要内容包括:1) MySQL的安装方式(CentOS下的编译安装与yum安装);2) 连接服务器的命令行操作及参数说明;3) 服务器管理命令(systemctl启停服务);4) 区分mysql客户端与mysqld服务进程;5) 数据库层级结构(服务器→数据库→表);6) 完整SQL操作流程示例;7) MySQL的插件式架构特点;8) SQL语言分类(DDL/DML/DQL/DCL);9) 存储引擎的定义与对比(InnoDB/MyISAM/Memory)。文章涵盖

2025-11-18 11:12:21 754

原创 【Linux】传输层协议TCP

摘要:TCP协议通过头部字段和核心机制实现可靠传输。协议段包含端口号、序号、控制标志等关键字段,支持进程定位和流量控制。四大支柱机制保障可靠性:确认应答确保数据送达;超时重传处理丢包;连接管理规范建立/关闭流程;滑动窗口提升传输效率。还包含流量控制、拥塞控制等优化机制。TCP面向字节流可能引发粘包问题,需应用层处理。对比UDP,TCP更可靠但开销大,UDP适合低延迟场景。异常情况通过RST、保活定时器等机制处理,确保连接安全性。

2025-11-17 18:36:39 723

原创 【Linux】传输层协议UDP

传输层负责数据从发送端准确传输到接收端对应进程,核心功能是通过端口号实现进程定位。端口号分为知名端口(0-1023)和动态端口(1024-65535),通过IP+端口号五元组唯一标识通信连接。UDP作为无连接、不可靠协议,具有首部简单、无确认重传机制、面向数据报等特点,支持全双工通信但数据长度受限(64K),适用于实时性要求高、可容忍丢包的应用场景(如DNS、DHCP)。使用时需注意端口绑定规则及数据分包处理。

2025-11-17 18:24:26 936

原创 【Linux】应用层协议HTTP

HTTP协议是互联网中最基础的超文本传输协议,定义了客户端与服务器之间的通信规则。它具有无连接、无状态的特性,通过GET/POST等方法实现资源请求,使用状态码标识响应状态,并通过Header字段传递附加信息。URL作为统一资源定位符,通过urlencode对特殊字符进行转义。为解决无状态问题,实际应用采用Cookie、Session和Token等技术实现状态保持。HTTP协议通过请求/响应格式完成通信,其中请求首行包含方法、URL和版本,响应首行包含状态码和解释。常见状态码如200(成功)、404(未找到

2025-11-16 10:53:35 1218 2

原创 【Liunx】进程间关系与守护进程

摘要:本文系统介绍了Linux进程管理的核心概念。主要内容包括:1)进程组的概念及特性,强调进程组生命周期与组长进程无关;2)会话的定义与创建方法,说明会话ID与首进程PID的关系;3)控制终端特性,包括前台/后台进程组的信号处理差异;4)作业控制机制,详述作业状态转换和管理命令;5)守护进程的实现原理,提供标准创建流程和示例代码。其中重点阐述了setsid函数创建会话的条件限制,以及通过fork+setsid组合实现守护进程的关键步骤,最后展示了服务守护进程化的具体实现方案。

2025-11-15 20:26:26 645

原创 【Linux】应用层自定义协议与序列化

本文摘要:文章详细介绍了基于TCP协议的网络计算器实现方案。系统采用C++开发,通过自定义应用层协议解决TCP粘包问题,使用JSON格式进行数据序列化。主要内容包括:1.协议设计采用"长度+数据"格式(len\r\nmessage\r\n)确保报文完整性;2.利用jsoncpp库实现Request/Response结构体的序列化与反序列化;3.服务器采用多进程模型处理并发请求;4.详细说明了TCP全双工通信机制和缓冲区管理。项目包含完整的Socket封装、协议处理模块和计算逻辑实现,演示

2025-11-15 14:36:41 1486

原创 【Linux】Socket编程UDP

本文介绍了三个版本的UDP网络通信实现:1) 基础Echo服务器实现简单消息回显功能;2) 字典翻译服务器实现英汉词典查询功能;3) 聊天室服务器支持多客户端消息转发。各版本均采用UDP协议,包含服务器初始化、消息接收处理、客户端通信等核心模块。版本演进展示了从基础通信到业务逻辑处理(翻译查询)再到复杂功能(多用户消息路由)的实现过程,涉及套接字编程、回调函数、线程池等技术点,完整实现了UDP网络应用的开发框架。

2025-11-15 12:01:42 319

原创 【Linux】Socket 编程预备知识

本文摘要: Socket编程基础涉及网络通信的核心概念与实现方法。首先,IP地址用于定位主机,端口号(16位无符号整数)则精确标识主机内的进程,形成"IP+端口"的二级定位体系。传输层提供TCP(可靠连接)和UDP(无连接高效)两种协议选择。网络通信需统一使用大端字节序,通过htons/htonl等函数转换。Socket API提供关键接口:socket()创建套接字,bind()绑定地址,listen()/accept()处理TCP连接,recvfrom()/sendto()实现UDP

2025-11-14 18:50:34 1036

原创 【Linux】线程同步与互斥(2)

本文探讨了线程池的设计与实现,通过"池化思想"提高多线程任务处理效率。首先设计了可复用的日志模块,采用策略模式支持控制台/文件两种输出方式。然后实现了线程池核心组件,包括任务队列、工作线程以及同步机制(互斥锁和条件变量),确保线程安全。系统采用单例模式保证线程池全局唯一,通过双重检查锁实现线程安全。该框架特别适合高并发短任务场景,避免了线程频繁创建/销毁的开销,可作为多线程编程中的核心组件。日志模块和线程池的实现展示了策略模式、单例模式等多线程编程中的关键设计模式应用。

2025-11-14 15:37:52 569

原创 【Linux】线程同步与互斥(1)

本文系统阐述了多线程编程中的互斥与同步机制。互斥部分解析了临界资源、临界区等核心概念,通过互斥锁(pthread_mutex_t)保证原子性操作,解决竞态条件问题。同步部分介绍了条件变量(pthread_cond_t)和信号量(sem_t)的实现原理及使用方法,强调条件变量必须与互斥锁配合使用以避免"伪唤醒"。文章重点分析了生产者消费者模型,通过阻塞队列和环形队列两种实现方式,展示了如何运用互斥与同步机制解决多线程协作问题,达到解耦生产者和消费者、平衡系统负载的目的。文中提供了详细的代码

2025-10-14 13:48:55 719

原创 【Linux】线程概念与控制(2)

本文详细介绍了Linux系统中的线程控制机制,重点讲解了POSIX线程库(pthread)的核心操作。主要内容包括: 线程基础操作:创建(pthread_create)、终止(return/pthread_exit/pthread_cancel)、等待(pthread_join)和分离(pthread_detach)等核心函数的使用方法及注意事项。 线程ID机制:区分了内核线程ID(LWP)和用户态线程ID(pthread_t),解释了它们的作用域和实现原理,其中pthread_t实际上是线程控制块的地址指

2025-10-09 22:08:00 1027

原创 【Linux】线程概念与控制(1)

摘要: Linux线程是进程内的轻量级执行流,共享进程地址空间但拥有独立栈和寄存器上下文。其实现依赖分页式虚拟内存管理,通过页表、TLB和缺页异常机制高效共享物理内存。线程相比进程具有创建/切换开销小、多核并行能力强等优势,但存在健壮性低、同步复杂等缺点。线程共享进程文件描述符、信号处理等资源,独占线程ID、栈等私有数据。多线程适用于CPU密集型(并行计算)和IO密集型(重叠操作)任务,需权衡性能与同步复杂度。进程作为资源分配单位,线程作为调度单位,二者协同实现高效并发。

2025-10-07 20:19:39 629

原创 【Linux】进程信号(2)

本文详细解析了信号处理中的核心机制。信号从产生到递达会经历"未决"状态,内核通过PCB中的信号集管理信号的阻塞、未决状态和处理动作。信号捕捉涉及用户态与内核态的切换,可注册自定义处理函数。文章还介绍了可重入函数的概念和volatile关键字保证内存可见性的原理,并深入分析了操作系统通过中断机制驱动信号处理的过程,包括硬件中断、时钟中断和软中断(系统调用、异常)的实现机制。

2025-10-06 14:57:37 1499

原创 【Linux】进程信号(1)

信号机制解析与Linux应用实践 摘要:信号是Linux系统中进程间异步通信的软中断机制。本文通过生活场景类比(快递通知)阐释信号的核心特性:异步性、延迟处理和三种响应方式(默认/忽略/自定义)。详细分析了信号产生途径:终端按键(如Ctrl+C触发SIGINT)、系统命令(kill)、函数调用(kill/raise/abort)、软件条件(alarm定时器)和硬件异常(除零错误)。结合代码示例演示了信号处理技术,包括signal函数设置自定义处理、前后台进程控制及CoreDump调试机制。关键点在于:信号由

2025-10-04 18:51:26 757

原创 【Linux】进程间通信(1)

进程间通信(IPC)是操作系统提供的机制,用于实现不同进程间的数据交换和资源共享。IPC的发展经历了从Unix管道到System V IPC,再到POSIX IPC标准化的演进过程。其中,管道是最基础的IPC形式,包括匿名管道(仅限亲缘进程)和命名管道(支持非亲缘进程)。匿名管道通过pipe()系统调用创建,利用fork()的文件描述符继承特性实现父子进程通信。内核通过缓冲区、读写指针和引用计数管理管道数据。实际应用中,管道可用于构建进程池等复杂协作模式,实现任务分发与执行。

2025-10-02 20:49:53 957

原创 【Linux】库的制作与原理(2)

文章摘要: 本文深入解析了ELF文件在Linux编译、链接与加载过程中的核心作用。ELF文件作为Linux系统的统一格式,包含可重定位文件、可执行文件、动态库和转储文件四种类型,其结构由ELF头、程序头表、节头表和节组成。静态链接通过合并目标文件(.o)并重定位地址生成独立可执行文件;动态链接则延迟到运行时加载共享库,减少内存占用。ELF加载时,操作系统按程序头表将节合并为段映射到虚拟地址空间,利用页机制优化内存管理。文章还剖析了动态链接的GOT/PLT机制和地址无关代码(PIC)原理,对比了动静态链接的优

2025-09-30 16:06:22 563

原创 【Linux】库的制作与原理(1)

库是成熟的复用代码,分为静态库(.a/.lib)和动态库(.so/.dll)。静态库在编译时链接到可执行文件,使用ar命令打包;动态库运行时加载,需-fPIC和-shared选项生成。使用库时需指定路径(-L)、库名(-l)和头文件路径(-I)。动态库运行需配置LD_LIBRARY_PATH或系统标准路径。静态库直接运行,动态库需确保系统能找到。

2025-09-28 17:51:35 813

原创 【Linux】Ext系列文件(2)

本文介绍了ext2文件系统的核心结构和工作原理。文件系统通过块组(Block Group)组织存储空间,每个块组包含超级块、块组描述符表、位图、inode表和数据块等组件。inode存储文件属性并通过指针关联数据块,目录以"文件名-inode编号"键值对形式存储。系统通过挂载机制解决跨分区访问问题,将分区关联到目录作为访问入口。此外,文章还对比了软硬链接:硬链接共享inode,软链接是独立文件存储目标路径。ext2的设计为后续ext3/ext4奠定了基础,通过块组和位图实现高效存储管理。

2025-09-28 13:30:38 1357

原创 【Linux】Ext系列文件(1)

本文系统介绍了计算机硬件存储系统的组成和工作原理。首先详细讲解了磁盘(HDD/SSD)、服务器、机柜和机房等硬件设备的基本概念与分类。重点剖析了机械硬盘的物理结构(盘片、磁头等)和存储结构(磁道、扇区、柱面),并解释了CHS与LBA两种寻址方式的转换机制。随后引入文件系统概念,介绍了"块"(通常4KB)、分区(基于柱面划分)和inode(存储文件元信息)三个核心概念。文章通过硬件结构与逻辑抽象相结合的方式,阐述了从物理存储到文件系统的完整认知路径,为理解计算机存储体系提供了系统性的知识框

2025-09-27 15:57:17 1121

原创 【Linux】基础IO(3)

缓冲区是内存中预留的存储空间,分为输入/输出缓冲区,用于协调高速CPU与低速I/O设备的效率差异。标准I/O提供全缓冲(填满刷新)、行缓冲(遇换行符或缓冲区满刷新)和无缓冲(直接系统调用)三种机制。缓冲机制通过减少系统调用次数提升性能,例如终端输出采用行缓冲,重定向到文件则变为全缓冲。进程fork时会复制未刷新的缓冲区,导致退出时父子进程可能重复输出缓冲区内容。典型场景展示了不同缓冲方式对输出顺序和内容的影响。

2025-09-25 21:54:06 953

原创 【Linux】基础IO(2)

本文介绍了Linux系统文件I/O的基础知识。首先说明系统调用是文件操作的最底层方式,并演示了通过位运算传递标志位的方法。详细讲解了open()系统调用的参数和选项,包括文件路径、标志位(如O_RDONLY、O_WRONLY等)和权限设置。通过代码示例展示了如何使用open()、write()、close()等系统调用进行文件读写操作。重点剖析了文件描述符(fd)的本质,它是进程与文件关联的桥梁,由内核维护的数组下标实现。最后深入阐述了Linux"一切皆文件"的设计哲学,说明系统如何通过

2025-09-25 15:47:45 1198

原创 【Linux】基础IO(1)

本文主要探讨了文件的概念及其操作方式。文件可狭义理解为磁盘上的永久存储单元,广义上Linux系统将一切设备抽象为文件。文件操作实质是对文件属性和内容的操作,需通过系统调用而非单纯库函数实现。文章回顾了C语言文件操作接口,包括fopen、fwrite、fread等函数的使用方法,演示了文件的打开、读写过程,并介绍了标准输入输出流(stdin/stdout/stderr)的特性。最后详细说明了不同文件打开模式(r/r+/w/w+/a/a+)的区别及其适用场景。

2025-09-23 16:05:20 893

原创 【Linux】进程控制(1)

本文介绍了Linux中进程创建与终止的相关机制。进程创建方面,重点讲解了fork系统调用及其写时拷贝优化,分析了fork的常见用法和失败原因。进程终止部分,详细说明了正常退出、错误退出等场景,对比了_exit、exit和return三种退出方式的差异。此外,还阐述了进程等待的必要性,介绍了wait和waitpid两种方法,包括如何获取子进程状态以及阻塞与非阻塞等待的实现方式。这些内容为理解Linux进程管理提供了基础性的技术框架。

2025-09-23 13:20:16 995

C语言游戏实战(11):植物大战僵尸(坤版)的图片素材

本游戏使用C语言和easyx图形库编写,通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧,以及锻炼我们独立的项目开发能力,

2024-05-18

C语言-坤坤的篮球回避秀

这款小游戏是博主耗时两天半完成的,玩家需要控制坤坤在游戏界面上移动,来躲避游戏界面上方不断掉下来的篮球。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前,我们需要先了解一下游戏的基本规则和功能: 游戏界面:游戏界面是一个矩形区域,玩家可以在这个区域内控制球的移动。 坤坤:玩家控制的坤坤可以在游戏界面内自由移动,按下特定的按键后可以跳跃。 篮球:篮球在游戏界面的正上方源源不断地生成,并下降。 坤坤触碰篮球:当坤坤触碰到上方掉下来的篮球时,坤坤的血量就会降低一格,一共五格血量降完为止。 接下来,我们将通过以下几个步骤来实现这个游戏: 1. 初始化游戏界面和模型的信息。 2. 处理键盘输入,实现玩家控制坤坤的移动和跳跃。 3. 生成足够数量的篮球。 4. 生成篮球,并控制其移动。 5. 检测篮球与坤坤之间的触碰关系,并减少相应的血量。 通过学习这个游戏的开发过程,初学者将能够掌握C语言编程和easyx图形库的基本技巧。

2024-03-07

c语言游戏实战(10):坤坤的篮球回避秀的图片资源

这里面包含博文: 《c语言游戏实战(10):坤坤的篮球回避秀》https://blog.youkuaiyun.com/weixin_58252863/article/details/136474286 的所有图片资源,需要的朋友可以自行下载。

2024-03-05

c语言-飞机大作战软件

本次分享的资源是我个人独立开发的单人飞机大作战游戏软件。这款游戏以经典的飞行射击游戏为灵感,设计成一个适合单人体验的休闲射击游戏,提供富有挑战性和刺激的游戏过程。 软件功能: 单人模式:玩家操控飞机进行单独冒险,与各种AI敌人展开战斗,无需联网即可体验。 直观的控制界面:用户友好的界面设计,支持键盘或触控操作,易于上手。 飞机和技能充能系统:通过击败敌机,可获取飞机的技能充能值,增强战斗力。 敌机移速的改变:设有多种不同的速敌机速度,速度随着玩家分数的增加而增加,增加游戏的丰富度和持久魅力。 技术细节:

2024-03-04

c语言-球球大作战软件

本次分享的资源是我个人开发的简易版单人球球大作战游戏软件。这款游戏灵感来源于流行的在线多人游戏“球球大作战”,但我的版本专为单人体验设计,旨在提供一个简单易上手、休闲而又具有挑战性的游戏体验。 软件功能: 单人游戏体验:玩家与计算机控制的对手进行对战,无需联网等待,随时享受游戏乐趣。 简洁直观的操作界面:清晰易懂的界面设计,帮助玩家快速入门。 吞噬成长机制:通过吞噬地图中的小颗粒使球球不断变大,以达成更高分数。 ai小球设置:地图内设有多个ai小球,它们可以根据自身的大小和与玩家的距离来选择追击玩家或者逃跑,增加游戏的趣味性。 积分系统:设立积分系统,玩家可挑战自我,刷新最高记录。 注意事项: 本软件仅供个人学习和娱乐使用,请勿用于商业目的。 请遵守相关的法律法规,并尊重知识产权。 遇到问题或有改进建议时,欢迎提出,以便持续完善游戏。 结语: 这款单人版的简易球球大作战游戏旨在带给玩家轻松愉快的单机体验。希望它能在您空闲时提供一些简单的快乐,并期待您的反馈和支持!

2024-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除