自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个追逐梦想的码农

分享服务器并发/分布式技术,数据库内核原理,一起手写基础组件

  • 博客(214)
  • 资源 (22)
  • 问答 (2)
  • 收藏
  • 关注

原创 【手写数据库内核miniToadb】第5天 数据库模块解析器的介绍

这种类型存储逻辑判断的结果,解析为整型,实际存储也为整型,但在查询显示时,根据表定义的类型,当整型值为0时转为字符f,当整型值为1时转换字符t。当然在SQL的定义语句中还用到了括号,表达一种属于的语义,比如表的定义当中,属于表的所有字段的定义,用括号包围起来,括号内属于内部层级,括号外是表的整体信息层级,像是两级树形结构一样。在SQL语句当中,除了命令,数据之外,还有一些用于起分隔作用的符号,作用类似于自然语言中的标点符号,对SQL中的各部分进行有效的切分,使得表达准备的语义,避免歧义的产生,使表达清晰。

2025-02-07 08:33:25 22 2

原创 【手写数据库内核miniToadb】第4天 词法分析器demo实现,单词分词与统计

在学习C语言编程时肯定做过这样一道编程题,统计一段英文文章中的字符数量,单词数量,行的数量。flex是一个高效的词法分析工具,同时它定义规则非常的简单,同时flex工具可以将这些规则转换为C语言代码,这样与项目程序可以很好的融合在一起。这样一个编程题,背后逻辑其实是对自然语言的处理,首先识别出来语言中的最小单元–单词,之后就是按单词的意思,还有一句话中单词的顺序来解析它的含义。如果用flex工具来实现,只需要定义分词的规则即可,不再考虑实现逻辑,专注于要做的分词规则。直接就可以输入一段英文短文

2025-01-13 13:26:10 125 38

原创 【手写数据库内核miniToadb】第3天 SQL解析工具的准备,flex与bison

解析器准备解析器准备额,SQL发展到今天已经是非常庞大的体系,要想将它完全实现已经不可能,即使是商业数据库中也是大部分的实现。对于如此复杂的语言,从头开始字符的解析程序开发,已经没有意义,也与数据库内核的内容不符,所以在SQL解析模块中引入两个成熟的工具flex和bison,它们是业界著名的语言解析工具,在编译器,数据库等各领域的前端语言分析中应用广泛。1 词法分析工具flexFlex起源于1975年由Mike Lesk和Eric Schmidt编写的lex工具。

2024-12-27 08:37:30 3371 84

原创 【手写数据库内核miniToadb】第2天 与数据库交互的桥梁--SQL解绍

源码编辑器可以使用流行的VScode,支持跨平台,当然也可以使用Eclipse,或者自己熟悉的其它工具,不同编辑器之间的默认字符集可能不同,最好设置为UTF-8,Linux下的换行模式,统一的格式避免一些奇妙的问题。上一节通过一个简单的C语言程序来模拟数据库的行为,从处理能力来看,也有创建表,插入、删除、更新、查询等操作,但是与大家认为的数据库差距很大。按功能的不同,将SQL划分为DQL,DDL,DML,DCL等类型,经常使用的查询,插入更新等就属于DQL和DML范围。2.3 SQL标准的发展。

2024-12-22 07:06:39 3656 184

原创 【手写数据库内核miniToadb】第1天 模拟数据库流程,剖析数据库内核的组成结构

解析器就是将用户输入的命令字符串转换为程序内部的数据结构,然后就可以执行命令并返回结果。通过一个简单的C程序来看一下数据库的解析和执行流程。

2024-12-16 13:31:59 4737 178

原创 【PostgreSQL使用】最新功能逻辑复制槽的failover,大数据下高可用再添利器

使用数据库除了存取数据快捷以外,还有一个非常重要的目的,就是它有一整套的机制来保障数据访问的高可用,持续性。当然逻辑复制也不例外,当我们正在订阅的主库故障发生主备切换时,仍然希望数据库对象的变更订阅不会丢失,能持续收到发布者的消息。这在以往的PostgreSQL版本中是没有的,最新的PostgreSQL 17版本终于完善了这一功能,逻辑复制支持了failover特性,提升了逻辑复制的高可用性。本文通过搭建逻辑复制的failover部署,来试一试逻辑复制的failover倒底如何。

2024-11-29 11:22:44 8154 345

原创 PostgreSQL内核源码分析 逻辑复制基本流程,发布订阅创建背后的故事

PostgreSQL中如何实现逻辑复制功能呢?我们从几个方面来逐层展开介绍,首先介绍一下逻辑复制的代码结构,再来看一下产生通知的流程,以及如何应用到备份。本文就来分享一下逻辑复制的代码框架结构,在整体上对逻辑复制有初步的认识。

2024-11-22 09:56:24 6589 162

原创 【postgresql初级使用】逻辑复制是对数据库对象进行复制,非常灵活的完成数据归集与分发

在PostgreSQL中逻辑复制是一个非常实用的功能,因为它可以指定数据库对象进行复制,甚至可以指定到列,没有指定的列可以不复制,这就非常灵活。可以用于数据的汇集,也可以用于数据的分类,特定数据的分发或备份等。当然,逻辑复制非常灵活,在部署时一定要先设计好数据复制的路径,避免产生复制的循环,比如A复制到B,B又复制到A,这样数据就会越来越多。

2024-11-14 08:49:20 7552 228

原创 【linux 多进程并发】0203 网络资源的多进程处理,子进程完全继承网络套接字,避免“惊群”问题

本节主要分享了网络套接字在父子进程中的继承的情况。可以通过验证发现,父启动监听后,此时创建子进程,在子进程中也继承了监听套接字,它也可以与客户端建立连接;而父进程中的监听套接字,也仍然可以与客户端建立连接。当然其它网络操作步骤也是一样的,在父子进程中相同的套接字都会收到相同的网络事件,但最终只有一个进行处理,这样就带来一个问题,其它不处理事件的套接字会被频繁唤醒。

2024-11-05 11:58:09 2096 202

原创 【linux 多进程并发】0302 Linux下多进程模型的网络服务器架构设计,实时响应多客户端请求

本文主要介绍了基于多进程架构的网络服务器的设计与实现,在多进程架构中每个客户端会有一个服务端的进程专门处理通信,增加了对客户端消息的响应效率,提升了并发处理能力。

2024-10-30 08:28:43 2490 195

原创 【linux 多进程并发】0301 Linux创建后台服务进程,daemon进程,自己的进程可以被一号进程接管啦

通常我们在终端启动程序,该程序的父进程一般是终端进程,这样在终端退出时,会产生像SIGHUG信号发给所有子进程,子进程默认处理是退出。我们要创建后台服务进程时,必需让进程与终端无关,这就是示例代码中经过一次fork之后,父进程退出,而子进程让systemd接管的真正作用。本章节代码位于[gitcode](https://gitcode.com/toadb/hatchCode/overview), 路径为: multiProcess/ex02_multiprocess, 有兴趣的同学可以下载测试,当然

2024-10-22 18:47:14 2287 198

原创 【linux 多进程并发】0202 Linux进程fork之后父子进程间的文件操作有着相同的偏移记录,多进程操作文件的方法

好了,到这里,子进程是父进程的拷贝有了更加深入的理解,这里像编程语言中的深拷贝与浅拷贝的关系。而子进程其实是做了一些浅拷贝,引用的内核文件表项还是一份,这就会引起两个进程共同操作的问题。在这种情况下,每次操作需要加锁,同时要指定操作的位置和大小。

2024-10-17 10:24:21 1937 168

原创 【linux 多进程并发】0201 Linux进程fork内存空间,父子进程变量内存地址居然是一样的

在多任务并发编程中,使用多进程架构时,在使用fork创建的父子进程时,子进程得到与父进程相同的内存空间内容。进程的内存空间由虚拟地址描述,在使用时会映射到物理地址。

2024-10-11 07:39:21 1761 162

原创 【linux 多进程并发】0102 linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化

本文介绍了linux平台下进程的基本状态,这些状态经过细化后对应进程生命周期中的各阶段;进程从创建启动之后,就处于一个有限状态机中,从就绪,运行,可中断阻塞,不可中断阻塞之间进行转换,直到进程的终止。

2024-09-29 15:02:07 5464 206

原创 【linux 多进程并发】0101 linux下使用常见命令,来解析进程家族体系脉络

本文介绍了Linux系统平台下进程的相关概念,在Linux下所有进程是有继承关系的,最初的1号和2号进程分别是用户进程和内核进程的祖先,通过 `ps`,`top`,`kill`三个常用的命令,就可以查看进程信息,资源占用情况,以及结束进程。

2024-09-27 11:29:10 2012 114

原创 【手写数据库内核组件】1001词法分析器,语言被程序识别的第一步,将语句分解为最小词根token

本文介绍了词法分析的流程,规则匹配,以及分解token的机制,当然不同的语言,规则的复杂度也不同;它是一套通用的流程,因此诞生了很多优秀的词法分析工具,只需要定义规则,就能高效的完成分词的处理。

2024-09-20 16:00:51 3750 174

原创 【手写数据库内核组件】0104双向循环链表,麻雀虽小也需要精心设计,整体分层抽象,遍历的多种形式

前文介绍了单向链表,它结构简单易用,但是需要对数据经常随机插入和删除的场景,就显得非常麻烦,需要遍历找到前驱节点。今天来分享一下双向循环链表,每个节点有前继与后继指针,同时它链表的头和尾也是相连的,这样就可以在任意位置开始遍历。本文就来介绍双向循环链表有那些操作,来设计一个通用的双向循环链表组件。

2024-09-06 19:00:15 1622 184

原创 【手写数据库内核组件】0103单链表的分层设计,一套能复用的链表组件,操作原理与详细实现

前面几节介绍了链表的各种形式与应用,从本节开始进入到实战阶段,从开发大型软件角度,来看这些链表结构如何实现;这里的实现与初学时的例子会有很大的区别,在大型软件中,链表常常作为一个公共组件出现,开发者更多的是调用和使用,所以它必须有非常好的扩展性,能够承载很多数据类型,而链表算法非常稳定,不需要再次重写;虽然链表是很小的一个组件,不仅仅需要编码实现,也会有设计思想的融合,最后还会对它的功能和性能的分析。

2024-09-04 08:15:19 2144 123

原创 【手写数据库内核组件】0102 链表的类型,单向链表,双向链表,循环链表,二叉树,多路树等类型以及它们的特点,物尽其用

程序就是算法 + 数据结构, 今天我们就来看看最基础的数据结构——链表。在实际软件应用中,经常需要存储数据,往往存储的数据量在运行时会随着情况的变化而变化;而链表就是一个很好的容器,可以很好的应对变化,不仅对于链表中的数据插入删除,还是不断新增数据。基于链表,可以实现多种数据结构,如队列,栈,树等。本章节就来分享一下链表的形式。

2024-08-28 08:48:19 1374 185

原创 【手写数据库内核组件】0304 缓存策略,缓存经典穿透,击穿,雪崩,抖动问题,在缓存池中实战中的解决与应对

一般增加缓存是为了减少IO次数,让更多业务需要的数据驻留在内存中,提升整体的性能。但是引入缓存后,会带来缓存穿透、抖动、击穿、雪崩的问题;本节就来看一看这些问题在我们实现的缓存池上如何解决的。

2024-08-26 08:17:54 1286 109

原创 【手写数据库内核组件】0303 数据缓存池(二) 缓存块使用前需要固定,缓存加载与无效,无锁的替换算法

继续数据缓存池的分享,继上节通过hashTable查找缓存数据块,如果找到之后会对数据块缓存进行操作,本节重点对数据块缓存操作时的注意事项与实现流程进行分析。

2024-08-21 07:30:55 1502 157

原创 【手写数据库内核组件】0302 数据缓存池(一),数据块缓存池的三层架构与两级映射,缓存块与物理数据的对应关系

在数据库中有多种缓存使用场景,其中最大的缓存是表数据的缓存,一般作为多个并发的共享缓存池来使用。表数据从磁盘先加载到缓存池中,数据库对数据的所有操作都在缓存中进行,这避免了频繁对磁盘的读写操作;同一块数据在缓存池中只加载一次,所以会存在并发访问。这就要求缓存池支持并发访问,同时在大并发时有一定的扩展性,加大并发时缓存不能成为性能瓶颈;同时缓存有上限,支持淘汰替换机制。本节分享基于时钟算法的共享缓存池的实现机制。

2024-08-19 08:05:35 1328 93

原创 【手写数据库内核组件】0301 缓存模型介绍,缓存分层架构与缓存映射算法,以及缓存淘汰替换算法,同步一致的策略

缓存这一组件,在高性能软件中是个必选项,当然数据库中也是必不可少的模块。缓存有各种各样的实现方式,尤其缓存的替换算法孰好孰劣,比较不断。针对不同的数据,用途,在数据库中有多种形式的缓存,本文就来介绍数据库中用到的缓存形式。

2024-08-12 20:13:47 2268 195

原创 【手写数据库内核组件】0603 火山模型节点的执行框架,详细执行流程,体会其中的设计模式

上一节介绍了火山模型执行器中的四个基础节点类型:投影节点,选择节点,嵌套节点,扫描节点;以及四种节点的作用与结构定义。本节来分享一下这四种节点的执行框架,节点的初始化,节点执行,迭代获取数据,以及数据的输入输出流程。

2024-08-10 12:00:11 1817 125

原创 【手写数据库内核组件】0602 火山模型的节点基础节点类型,节点的作用与结构定义,预分配来优化性能

本文主要分享了火山执行器模型中的四种基本节点类型:投影节点,选择节点,嵌套节点,扫描节点,以及它们的功能与节点结构的定义。

2024-08-08 07:55:29 1597 111

原创 PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略

对于后端开发者而言,对数据库的熟悉程度不仅是岗位需求的基础,更是职业发展中不可或缺的一环,其全面性对于技术定级具有显著的推动作用。在选择学习的数据库时,建议从广泛应用的postgresql入手,因其在互联网领域占据重要地位。接下来,让我们逐步深入,从基础到进阶,系统梳理数据库技术的关键点。

2024-07-28 10:58:09 3845 259

原创 【手写数据库内核组件】0601数据库执行引擎常用的火山模型,与其它模型比较,实现原理以及解释器和迭代器的实现

数据库的执行引擎的常见模型:* 火山模型/迭代模型,采用自顶向下拉取数据的模式,执行计划生成树状结构的操作节点树,从根开始执行,每个操作都会有一个next方法,来获取下一条数据,操作之间也只传递一条数据。* 编译模型/物化模型,采用向上推送的模式,从最低层操作执行,每个操作将数据输出,作为下一个父操作的输入;这种模型以数据为中心,可以有效利用cache,各操作之间数据获取可以提升cache的命中率。* 向量模型/批处理模型,也是迭代模式执行,不同之处在于,每个操作会处理一批数据,生成的输出也是一组数

2024-07-25 07:32:19 3346 167

原创 【手写数据库内核组件】0701 简洁高效的运行日志模块,在多线程下并发下写入日志信息,多种日志级别和代码位置信息记录

日志模块是一个软件的基础模块,虽然有一些开源的日志系统,但是选择一个简洁而高效的日志模块,在软件运行过程中产生大量日志时,还能高效的运行,这非常关键。

2024-07-20 15:33:50 1689 178

原创 【手写数据库内核组件】0501多线程并发模型,任务分发多工作者执行架构实现,多线程读写状态时volatile存储类型使用技巧

现代的CPU都会采用多个core的形式具有并行执行的能力,同一时间可以打开多个应用程序,即使是我们的手机,它的CPU也是非常强大的多核处理器。如何让我们开发的应用程序充分利用多核CPU呢,这就不得不说多线程模型。本文就来分享一下多线程模型的搭建与使用。

2024-07-17 08:45:55 2879 134

原创 【手写数据库内核组件】0401 动态内存池,频繁malloc/free让系统不堪重负,动态内存池让应用自由使用动态内存

在动态内存使用频繁的应用程序中,不仅与操作系统交互多,而且会造成大量的内存碎片,增加额外的系统负担。本文分享了通过动态内存池的方法,每次申请一个内存页,然后在当有动态内存需要时,进行切分,可以避够内存碎片的产生。当然也存在很多可优化的地方,在释放时可以保留一部分内存页在freeList中,这样进一步减少与操作系统的交互。

2024-07-13 06:00:00 3063 132

原创 【手写数据库内核组件】0202分段哈希表Partial Hash Table,大并发场景下提升hashTable的吞吐量,可变分段算法快速定位segment位置

本文分享了分段hash表的实现与原理,在高并发场景下,为了hash操作的一致性,又同时提升hash表的吞吐量,采用分段hash,在没有hash段冲突时,可以同时进行N个并发操作,N即为段的数量。对于分段的原量,分享了段数量可变的分段方法,通过计算段数量的2的幂,来动态确定占用的二进制位的数量,生成对应的段掩码。

2024-07-11 07:38:24 1925 106

原创 【手写数据库内核组件】0201 哈希表hashtable的实战演练,多种非加密算法,hash桶的冲突处理,查找插入删除操作的代码实现

hash表的应用非常广泛,在网上也可以看到分享的各种hash表的实现,都比较概念化。本章节从实战的角度出发,以数据库内核中的应用为例,来看看hash表的原理与实现。

2024-07-07 15:25:54 3808 175

原创 【手写数据库内核组件】01 解析树的结构,不同类型的数据结构组多层的链表树,抽象类型统一引用格式

本文介绍了链表节点为不同数据类型时的处理方法,定义了抽象类型后使引用的类型统一,同时在遍历树形链表时,对于成员仍为链表时,采用深度优先的递归遍历。这种链表在数据库内核中应用比较广泛,比如在SQL语法解析时,将语法的各子句解析成不同的数据类型,而像select子句,可以写多个列名,该子句内部又以链表形成存储列信息。

2024-07-07 10:56:17 494 37

原创 【postgresql初级使用】用户与角色的关系,搭建数据库安全体系中的分权管理

在数据库中有一套严格的访问控制策略,它是基于数据库用户,也就是说一个数据库对象,如database,可以给不同用户没的访问权限,如用户user1,有只读访问权限,用户user2有创建表的权限等等,通过这一套访问权限来保证数据的安全。在postgresql中,访问数据的前提是以用户的形式登陆数据库,不同的用户被赋予不同的权限。拥有相同权限的一组用户,可以被标记为同一种角色,这与现实社会是类似的,如保管员角色,工人角色,它们访问生产资料的权限和使用方式也是不同的。本节就来分享一下postgresql中

2024-07-04 10:21:51 2563 86

原创 【postgresql初级使用】数据库安全防护,核心数据是黑客的终极大boss,多层次建立安全体系

数据库作维护着系统的全部核心数据,在黑客眼中,它就是终极大boss,需要我们精心呵护。常常听到撞库,拖库,甚至于删库跑路等事件,我们在部署和维护数据库过程中如何防范这些风险呢?本文介绍数据库访问安全保护的一些方式,结合postgresql 数据库中有一些安全功能,同时还需要配合操作系统,以及网络部署的一起达到数据库的安全。

2024-06-29 13:40:44 11818 157

原创 揭示数据库内核的奥秘--手写数据库toadb开源项目

toadb数据库架构是一个精心设计、高效运作的系统,它承载着数据的存储、查询、处理和分析等多重任务。从SQL输入到数据返回,经过词法/语法解析,生成逻辑/物理执行计划树,递归执行(火山模型),数据按列分组存储(PAX模型), 每一步都经过精心优化,确保用户能够高效、准确地获取所需信息。

2024-06-21 08:51:46 7098 205

原创 【postgresql初级使用】触发器的enable与disable,可以自动化精准管理触发器,避免重写触发器复杂逻辑

通过对触发器的启用和禁用,来精确管理触发器的使用,让触发器的定义一直保持在系统当中。

2024-06-19 13:29:14 4025 83

原创 【postgresql初级使用】条件表达式触发器,兼顾DML执行性能,又能执行复杂逻辑,只在结帐时计算总帐

本章节分享了通过表达式条件来限制触发器执行,这样不仅提升DML操作的性能,同时还能利用触发器实现复杂的功能。最后通过一个经典的帐单结算的案例,演示了条件触发器,会在订单转为完成状态时自动生成帐单。

2024-06-18 07:20:01 2257 81

原创 【postgresql初级使用】事件触发器event trigger,被忽略的table rewrite,组合策略保障重大操作

postgresql 中的事件触发器,可以指定的事件有 `ddl_command_start` ` ddl_command_end` `table_rewrite` `sql_drop`, 它可以让我们制定对这些事件的约束策略,当然也可以实现之前的审计案例。其中特别要注意表的重写事件,它是一个经常被忽视,对业务影响非常大的事件,可以通过一系列规则进行限制。

2024-06-13 08:22:00 3518 127

原创 【postgresql初级使用】视图上的触发器instead of,替代计划的rewrite,实现不一样的审计日志

在视图上的instead of 触发器,可以将原本的执行计划重写 替换为触发器执行,这样可以进行更为复杂的动作,这里以审计为例,演示了触发器的效果。

2024-06-08 09:03:44 3240 149

安卓开发 模仿QQ的聊天软件程序

安卓开发 模仿QQ的聊天软件程序;有客户端和服务端。

2024-08-27

linux项目开发 下手写数据库内核 揭示数据库内核的奥秘

在linux平台下手写数据库内核,通过对数据库内核的开发,了解数据库运行机制与原理;

2024-08-27

C 链式基数排序的代码实现

c 基于C语言的链式基数排序,链式基数排序是一种基数排序的实现方式,它使用链表来存储每个桶中的元素,通过多个轮次将元素按照其关键字从低位到高位进行排序。

2024-08-23

C语言指针 指针的奇特用法与案例

c语言指针在实际项目中,可以从结构体指针换算出成员的指针,同样也可以通过成员指针换算出结构体指针;另外指针的低二进制位常常是零,也可以用来存储数据。

2024-08-23

项目源码 词法语法分析器设计 一款从零开始的数据库内核

toadb是一个轻量级的、开源的关系型数据库,它提供了基本的SQL支持和数据存储管理功能。相比于其他成熟的数据库产品,toadb更加简单和易于理解,适合初学者和数据库内核开发人员使用。通过学习和使用toadb,我们可以更好地理解数据库的基本原理,掌握数据库的核心技术,为以后的数据库设计和优化工作打下坚实的基础。 使用toadb,你可以轻松地搭建一个简单的数据库系统,进行数据的存储和查询。toadb提供了SQL语法支持框架,可以满足大部分场景的需求。此外,toadb还支持行列混合式存储模型,相较于传统的行式存储更适合数据爆炸今天。通过使用toadb,你可以更深入地了解数据库的内部运作机制和原理,提高自己的技术水平。 toadb的发展是开源的,我们欢迎任何人对toadb进行改进和优化。我们相信,通过社区的力量,toadb会不断发展和完善,成为一款优秀的数据库产品。我们也希望通过toadb的开发和使用,推动数据库技术的普及和发展,为更多的人和企业带来便利和价值。 toadb是从零开始开发的数据库,本教程适合学习了C语言,数据库理论后的学生,也适合工作多年的老同志,不论是学习,兴趣

2024-08-23

数据结构 hash表 hash table 原理,以及实现介绍

hash 表是我们经常使用的一种存储数据的结构,它查找性能不会因为数据的增长而下降。

2024-08-23

linux 读写锁 原理以及使用机制介绍

linux 下读写锁的原理以及使用机制介绍;读写锁,不同与互斥锁,可以在写锁时达到互斥,而读锁时共享,同时读写间又可以排队等待。

2024-08-23

git教程 实践git仓库的使用

从实战案例进行讲述git的使用

2024-08-18

模版文档 职业人生规划的PPT模版文档

描述职业人生规划的PPT模版文档

2024-08-18

华为OD 比当前数大的2的幂计算 字节对齐 真题讲解

经常需要字节对齐,如给一个数,看是否为2的幂次,或者找一个比这个数大的最小的2的幂次

2024-05-25

python数据分析案例

使用pandas库来处理一个假设的电商销售数据集,并应用一些更高级的数据分析技术,如数据清洗、特征工程、数据聚合和可视化

2024-05-25

C语言struct与文件读写的课程实验

创建两个文件,xs1为ASCII文件,xs2为二进制文件, 文件中每条记录由学号,姓名,五门课成绩组成, 每个文件由两条记录组成。先存入文件,再用二进制读出;然后用结构体的方式读出。练习结构体与二进制之间的关系。

2024-05-25

520节日 love heart 心形html绘制

通过html脚本绘制一个心形图案,同时可以加载玫瑰花的图片,展示出520的页面。

2024-05-25

手写数据库内核 C语言版 内含源码

随着计算机技术的飞速发展,数据库作为数据处理的核心组件,在各个领域发挥着越来越重要的作用。为了更好地理解和掌握数据库技术,本教程将带领大家从零开始学习编写数据库内核。我们将采用行列混合的存储模型,从SQL分析开始,逐步深入到执行计划、执行、数据存储以及数据字典等模块。 通过本教程的学习,你将掌握如何使用C语言从零开始编写数据库内核,了解数据库内部的工作原理,并能够根据实际需求进行定制和优化。无论你是数据库初学者,还是有一定经验的开发者,本教程都将为你提供宝贵的实践经验和深入的技术解析。 让我们一起踏上这段数据库内核开发的旅程,掌握核心技术,为未来的数据库应用打下坚实的基础!

2024-02-18

C语言编写烟花效果的代码

这段代码创建了一个简单的烟花动画,烟花从屏幕中央向各个方向发射,并在到达屏幕底部时重新生成。请注意,你需要有一个支持`graphics.h`的环境来运行这段代码,而且`initgraph`函数需要一个有效的BGI图形驱动程序的路径。

2024-02-13

统计字符出现的次数 java,python,shell,javacript实现

统计字符出现的次数java,python,shell,javacript实现

2023-10-22

vue面试题 VUE面试题集

vue面试题 VUE面试题集

2023-10-22

JAVA Spring框架 介绍 代码案例

JAVA Spring框架 介绍 代码案例

2023-10-01

JAVA SpringMVC框架 介绍 代码案例

JAVA SpringMVC框架 介绍 代码案例

2023-10-01

JAVA MyBatis框架 特点 发展 动态SQL

JAVA MyBatis框架 特点 发展 动态SQL

2023-10-01

Maven框架 特点 发展

Maven框架 特点 发展

2023-10-01

java 23种设计模式

java 23种设计模式

2023-10-01

java 语言基础 内存模型

java 语言基础 内存模型

2023-10-01

JAVA 语言基础 类型 循环控制

JAVA 语言基础 类型 循环控制

2023-10-01

matlab 字符串数组

字符串数组 matlab

2023-09-25

matlab 9进阶知识

matlab 9进阶知识

2023-09-24

matlab 8接口开发

matlab 8接口开发

2023-09-24

matlab 7图形用户界面(GUI)开发

matlab 7图形用户界面(GUI)开发

2023-09-24

matlab 6算法处理

matlab 6算法处理

2023-09-24

matlab 5信号处理

matlab 5信号处理

2023-09-24

matlab 3图像处理

matlab 3图像处理

2023-09-24

matlab 2数据分析

matlab 2数据分析

2023-09-24

matlab 1数值计算

matlab 1数值计算

2023-09-24

matlab 10图形用户界面(GUI)开发

matlab 10图形用户界面(GUI)开发

2023-09-24

matlab 9数据处理和分析

matlab 9数据处理和分析

2023-09-24

matlab 8控制流程和逻辑

matlab 8控制流程和逻辑

2023-09-24

matlab 7与其他编程语言的接口

matlab 7与其他编程语言的接口

2023-09-24

matlab 6工具箱(Toolboxes)

matlab 6工具箱(Toolboxes)

2023-09-24

matlab matlab 函数和程序

matlab matlab 函数和程序

2023-09-24

matlab matlab 数据可视化

matlab matlab 数据可视化

2023-09-24

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

TA关注的人

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