自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 13.使用C连接mysql

C连接mysql、调用语句、获取行列信息、打印表数据

2025-07-25 18:01:15 800

原创 12.视图+用户管理

视图、创建用户、赋予权限回收权限等

2025-07-24 19:13:06 134

原创 11.事务

事务的四大特性和隔离级别

2025-07-24 17:20:46 620

原创 10.索引

mysql索引结构的理解以及创建、删除、增添主键、唯一键、普通键索引

2025-07-23 19:10:22 554

原创 9.内外链接

内外链接

2025-07-23 14:58:04 143

原创 8. 复合查询

基本查询、多表查询、自连接、子查询

2025-07-23 14:02:07 245

原创 7.内置函数

日期函数、数学函数、字符串函数、其他函数

2025-07-22 16:56:44 845

原创 6.表的内容之更新、删除和聚合分组

聚合、分组

2025-07-21 13:34:36 255

原创 6.表内容的操作之增、读

表内容的增加和读取

2025-07-19 16:14:27 170

原创 5.表的约束

表的约束

2025-07-18 16:15:13 364

原创 4.表数据的操作

数据库表内容的操作

2025-07-17 18:35:51 799

原创 3. 表结构的操作

表结构的操作

2025-07-17 15:31:47 174

原创 2.库操作

库的操作

2025-07-16 18:20:16 182

原创 数据库基本概念

数据库得理解个基本见识

2025-07-16 16:26:27 239

原创 UDP、TCP网络通信

3.sin_addr.s_addr : 网络地址。传入的肯定是一个字符串,但是网络中需要的是4字节 IP,需要的是网络序列的 IP,因此又需要转换。这里的第二个参数是 struct sockaddr* ,而填充的时候用的是struct sockaddr_in,因此需要强转如下。参数分别为:fd,缓冲区和缓冲区的大小(读出的数据放在哪里,期望接受多少数据),flags设置为0表示为阻塞读取。后两个参数为:输入型参数,这两个参数放的就是谁给我传的网络信息,放的就是对方的 IP 和 port。

2025-03-31 22:47:24 846

原创 管道的通信

为了提升效率,提前创建好各个进程,然后当任务来临时,父进程将任务写入对应的管道,子进程在对应的管道读取任务,也就是说通过管道下发任务让各个子进程去完成。4.管道还在写,但是read fd 关闭了,则这种管道就称为:broken pipe(坏的管道),这种情况下,OS会直接杀掉 写入 的进程,就是异常情况,直接使用13号信号杀掉。3.管道一直在被读,但是write fd 关闭了,并且该进程直接关闭了对管道的描述符,则读端进程读完有效数据后 read 返回值会读到0,表示读到了文件结尾。

2025-01-15 15:53:40 836

原创 软硬链接和动静态库

IO

2025-01-14 16:54:09 865

原创 哈希hash

查找函数在线性探测的过程中进入循环是该位置不为空,循环内部判断当前位置值是否为所需要查找的值时,需要先判断该位置的状态为存在,再进行值得比较才可以。对于字符型数据,如果只取首字符很明显重复率很高,取单词的所有字符值的和也会很高(因为有aabb abab bbaa这样的数据会导致他们的和相同),因此有一个方法如下:对每个字符乘131然后再相加。2.如果存一个11,但是位置被占了,11存到了下标5的位置,但是我先把33删了,那个从11开始查,查到3的位置为空了,就停止了。相当于数组元素为一个一个的指针。

2025-01-13 11:02:55 864

原创 文件系统的存储方式

是一个固定的集合体,一般是128字节,一个文件一个struct inode,而inode table存放这个分组内文件的属性的结构体,也就是说存放每一个文件的struct inode。在这个结构体中,inodenum存放的就是inode编号,datablocks中一个位置映射一个空间,而一般只有12个位置是直接索引的4KB使用空间,剩下的三个位置映射的4KB空间存放的是映射其他位置的空间。目录也是文件,目录的内容存放的是该目录下的文件名和inode编号的映射关系。对于一个被打开的文件,会保存一个路径信息。

2024-11-19 17:18:44 435

原创 重定向和缓冲区

实现一个小的文件描述符,并使用它进行文件操作

2024-11-18 18:54:23 283

原创 封装map、set

map和set的实现

2024-11-15 20:05:21 192

原创 文件fd内容

文件fd

2024-11-14 17:13:42 912

原创 红黑树分析

红黑树

2024-11-13 20:49:59 435

原创 进程的程序替换exec*函数和shell实现

strtok(str, const char* “b”) - - - 把字符串str,按照b字符去分割,返回值是从左向右分割的第一个子串,只需要第一次调用时传str,最后传NULL,就可以分割完。3.把bash给的环境变量改一改传入,putenv(XXX) - - - 把XXX环境变量添加到bash的环境变量中,然后传bash环境变量时就会有XXX这个环境变量。下面的C调用C++就是例子。snprintf(A,B,“C”) - - - 把C中的东西写进A中,A的大小为B,B就是sizeof(A)

2024-11-13 14:51:22 1023

原创 AVL树的旋转

AVL树

2024-11-08 20:10:47 1013

原创 进程的控制

pid - - - 需要等待的进程pid,pid = -1 说明设置父进程等待任何一个子进程退出,与wait作用相同。- - - 获取父进程bash获取到的最近一个子进程的退出码。当子进程没有退出时,父进程在waitpid()就是在阻塞等待,进程在阻塞等待,等到后父进程才开始运行。当一个进程退出时,会把自己的退出码和退出信号写入自己的PCB中,这样父进程就可以获取到子进程的退出信息得到进程的退出状态。fork()函数:子进程返回0,父进程返回的是子进程的pid - - - 方便父进程对子进程标识。

2024-11-07 20:15:13 812

原创 map和set的基本使用

如果 x 不存在,则先调用插入make_pair(x,V()),插入成功或者失败都会返回个 pair< iterator, bool>,iterator 指向 x 的迭代器,bool 为判断 x 是否是新插入的,然后拿出pair 的 iterator 为指向 x 的 iterator it,然后it->second 为返回的value。如果找的 key 存在,插入失败,返回一个pair< 存在的key的节点迭代器,false >。set::lower_bound(x):找的是 >= x 的值。

2024-11-07 15:53:01 450

原创 二叉搜索树

左右都不是空 替换法删除 找到cur左子树最大的或者cur右子树最小的和cur的数值进行替换,替换完后把cur左子树最大的或者cur右子树最小的节点删掉。如果删除的节点cur右为null,则让cur的parent指向cur的左,下图是左为空的处理情况。如果删除的节点cur左为null,则让cur的parent指向cur的右。若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。平衡二叉树可以解决上述最差情况。它的左右子树也分别为二叉搜索树。

2024-11-06 19:34:11 493

原创 多态的内容

多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多态必须在继承的条件下产生。多态的条件:1.父类完成虚函数重写(一般子类也写虚函数看着更清楚),虚函数需要完成函数名、参数类型、返回值相同。2.父类的指针或者引用去调用虚函数。在继承里,同名函数被隐藏,要想调用方的话得指定是在父类中的函数才能调用,而多态就解决了这个问题。多态的调用:运行时,到指向对象的虚表中找虚函数调用,指向父类调用父类虚函数,指向子类调用子类虚函数。普通调用:编译时,调用对象是

2024-11-05 19:25:29 960

原创 继承的内容

基类的private成员派生类怎样继承都是不可见(不能被直接访问)成员,但如果父类有public函数可以调用父类私有成员的话,可以在派生类中调用父类中的public成员去访问父类私有成员。继承的写法如下述代码所示:再代码中,基类的name和age都是portected,因此都是受保护的可以继承,继承后不能修改,但如果是基类的私有成员,继承后派生类中不可见。也就是说,对于很多都会共有的信息放在一个大类中,然后对于各个对象而言,想创建自己的信息类,可以继承一下大类,再添加一些自己特有的信息就行了。

2024-11-04 20:13:43 993

原创 命令行参数、环境变量、地址空间

因为环境变量路径被加载到PATH中被bash拿到,因此直接使用程序不用加上路径,而自己生成的可执行程序是没有被加载到环境变量中,因此需要指明路径。可以直接自己创建一个环境变量, export: 设置一个新的环境变量 - - - export XXX=yyy,如果不存就是在本地文件内的环境变量。fork()的返回值有两个,一个是父,一个是子,而fork是父进程的值,因此会发生写时拷贝,写时拷贝会导致好像同一个变量有不同的值。安装软件相当于把自己的程序加载到环境变量路径中,也就是usr/bin路径中。

2024-11-04 17:19:38 755

原创 进程的状态和优先级

Z - - - 僵尸进程:一个进程退出之后不会立即退出,而是看该进程的父进程会不会对其回收,回收后的才是真正的退出了进程,如果不回收就是僵尸进程,[test]< defunct >。一个进程退出,进程的代码和数据可以释放,但是进程的PCB得维持让父进程读取。使用-19的暂停是 T ,在调试的过程中,遇到断点进程停下来是 t ,T 是纯粹的暂停, t 是因为进程在追踪而停下来的,这两基本没啥区别,都是暂停了。进程在调度printf的时候需要访问显示器,因此只有在打印的时候进程才会是R+状态,不然是S+。

2024-11-02 21:37:52 386

原创 冯诺依曼体系、操作系统、进程

fork()是一个系统调用函数,这个函数会在函数内部就把子进程生成,生成后走到fork的结尾就是返回一个id,而在函数中已经产生了两个进程,那么他们会各自返回自己的 id,这样就好像是有两个返回值一样可以在一份代码中即走 if 又走 else。一个可执行程序如果没有被运行的时候是存在于磁盘中的,程序运行起来首先要先加载到内存中,但其实加载的不是进程,而是加载的数据先在内存中。fork之后的代码父子进程共享。只要进程的task_struct{}在不同的队列中进程去访问不同的资源,这就是进程的动态运行。

2024-10-30 20:13:40 973

原创 gdb、git

2024-10-30 15:05:22 316

原创 容器适配器、仿函数、优先级队列、deque、stack和queue题目

pop时,得先判定是否应该popstmin,如果先st.pop,则会导致判定的st的值已经被pop了。deque 头插尾插效率很好,但中间插入比较麻烦需要整体挪动,局部挪动,效率一般。vector:优点:支持下表随机访问,缺点:头部或者中间删除效率低+扩容有小号。栈和队列的默认容器是 deque,而栈和队列只需要头尾插入。list:优点:任意位置插入删除效率不错,缺点:不支持[]下标访问。队列经常用来广度优先遍历,也就是二叉树的层序遍历。deque:双端队列,但其实不是队列。上述图片是适配器实现的栈。

2024-10-29 15:46:04 275

原创 编译链接-makefile-进度条

2024-10-28 19:58:24 134

原创 list 的实现

顺序表可以用原生指针代替迭代器的指针,但链表不可以,链表的指针++并不能够保证找到下一个节点的位置。下述代码为list的迭代器代码,对于拷贝构造使用浅拷贝就可以,因为只需要让另一个指针指向当前节点的资源,而链表不可以浅拷贝。const迭代器是迭代器指向的内容不能修改而不是迭代器本身不能修改,而const iterator是iterator不能修改,因此不满足需求。对于下述代码自定义类型A而言,如果想用迭代器->读取A的内容,就需要在迭代器中重载->,也就是定义的模板 Ptr 函数。

2024-10-26 15:34:10 548

原创 list使用

splice:splice可以在自己的链表上操作,也可以把别的链表的部分转移到这个链表上。splice = transfers 转移 把一个链表中某些节点转移到别的位置去。转移是把链表的某些部分转移到让它去的位置的后面。如果把 lt1 转移到 lt2 上面,则 lt1 就没有节点了。list insert 不会失效, erase 会失效。insert 是在pos位置前面插入,pos是一个迭代器位置。vector insert/erase 会失效。clear 不会清除哨兵位节点。

2024-10-25 19:34:45 504

原创 linux-yum-vim-sudo提权

2024-10-25 16:47:13 165

原创 linux权限

2024-10-24 21:17:26 108

空空如也

空空如也

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

TA关注的人

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