- 博客(214)
- 收藏
- 关注
原创 windows连接服务器免密
将私钥下载下来,然后移动到windows的ssh配置路径下,后面再去进行config的配置。:客户端用的是私钥,服务器需要的是公钥,配置的是客户端方的config文件,加入私钥的路径。那个字符串是个标识,无所谓,然后连续三个空格即可,在默认路径下生成了私钥和公钥。文件的权限必须是600才可以。上创建或修改SSH配置文件(:在本地生成SSH密钥对()的内容复制到服务器的。
2025-12-25 23:06:43
469
原创 C++11介绍
左值就是可以进行取地址的变量,一般左值就是有名变量。右值就是不能取地址的变量,像临时变量、匿名变量都是右值,它们都是无名变量左值引用可以引用左值,const 左值引用可以引用左值和右值,右值引用只能引用右值,不能引用左值,会直接报错int main()return 0;编译器会将10隐式创建一个临时int变量,然后rr1其实引用的是那个临时int变量x+y同理,会将结果3.3创建一个临时double变量,然后rr2引用的其实是临时double变量。
2025-12-21 14:45:33
778
原创 C++哈希表设计
第一个模板参数是键值类型,第二个模板参数是映射值类型,这就是unordered_map的元素的键值和映射值类型,第三个模板参数是仿函数类,可以将键值计算为对应哈希值,第四个参数忽略,第五个参数空间配置器类型。
2025-12-16 22:23:08
843
原创 二叉搜索树
或者是具有以下性质的二叉树:将该数组按顺序进行插入,得到以下二叉搜索树1.a、从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。b、最多查找高度次,走到空,还没找到,这个值不存在。2.插入的具体过程如下:a.b.3. 二叉搜索树的删除a.b.c.d.
2025-12-08 12:25:43
317
原创 C++多态
等到使用基类的引用或指针调用重写过的虚函数时,编译器不会直接确定要执行的函数,而是取对象头部的虚函数表指针,如果实际对象是基类对象,那么这个虚函数表指针指向的应该是基类的虚函数表,如果实际对象是派生类对象,那这个虚函数表指针指向的应该是派生类的虚函数表,然后去虚函数表中找到对应的虚函数地址,然后执行。当一个类继承了一个有虚函数的基类或者自身定义了虚函数,那么该类对象中就有虚函数表指针,虚函数表同样编译器在编译期生成存在只读数据段里,里面存的是虚函数表指针,虚函数表用来实现多态。
2025-12-07 15:49:00
984
原创 stack和queue
第一个模板参数是元素类型,第二个模板参数是底层容器类型,第三个模板参数是一个仿函数类型,operator()重载是子节点与父节点应该满足的比较规则,比如less底层就是重载operator()进行小于号比较,其实就是子节点应该小于父节点,该种比较规则下建的堆是大堆。
2025-12-05 22:47:37
1037
原创 list模拟实现
一个指向哨兵头结点的指针,一个有效节点个数。其底层为带头双向循环链表,其链表节点有三个成员,其中一个值,是数据域,两个指针一前一后,是指针域。
2025-12-02 14:10:46
415
原创 STL库vector模拟实现
T* _start, T* _finish,T* _end_of_storage,分别是指向第一个有效元素,最后一个有效元素的下一个位置,可容纳元素中最后一个元素的下一个位置。当_start== _finish时,有效元素个数为0。
2025-12-01 23:57:54
464
原创 C++类和对象
如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整。,当编译器编译调用成员函数的代码时,会自动将对象地址作为实参传递给 this形参。结构体总大小为:最大对齐数(成员的对齐数中的最大值)的整数倍。体大小就是最终最大对齐数(含嵌套结构体的对齐数)的整数倍。一样的东西,指明了类有哪些成员,定义出一个类其实。在类内声明,类体外定义成员函数时,需要使用。其他成员的偏移量应是对应对齐数的整数倍。C,而c中结构体的成员是可以直接访问的),类的所有成员都在类的作用域中。
2025-11-27 21:23:24
492
原创 Reactor反应堆模式
如果我们往发送缓冲区中一次写很多数据,那么很可能最后只能写入一部分,然后write会返回写入发送缓冲区的数据的字节数,如果写是非阻塞的,那么当发送缓冲区满了的时候,write会直接返回-1,设置errno为EAGAIN。上面的代码中,当对接受缓冲区中的数据接收并处理过之后,会将结果数据保存在另一个缓冲区中,然后启动可写事件监控,当结果数据没了之后,那就关闭可写事件监控。的文件描述符,如果已有对应文件描述符则添加失败。已监控文件描述符的事件(覆盖式)epoll_ctl有三种操作。
2025-11-21 20:03:44
425
原创 IP 分片和组装的具体过程
在ip层,会检查IP报文的MF和片偏移是否全都是0,如果全都是0说明不是分片ip报文,那就直接解包后交给上层,否则该ip报文就是分片ip报文,查找四元组{上层协议,16位标识,源ip,目的ip}为键值的分片链表,如果有就将有效载荷加入到分片链表中,如果没有那就创建对应的四元组标识的分片链表,当接收到MF为1且片偏移为0的首个分片IP报文时,需要将该报文的ip头也用四元组映射起来,首分片ip报文的报头中会保存有ip的选项信息,当分片链表接收齐有效载荷分片后就组装出上层报文,然后交付给上层。
2025-11-18 12:56:48
329
原创 TCP 全连接队列与tcpdump 抓包
服务器进程退出,会释放进程资源,监听套接字本身就是无连接的,所以直接全部释放即可。对于监听套接字的全连接队列中已建立连接但未accept的套接字,会直接向对应客户端发送RST包,然后释放全连接队列中的struct sock结构。对于已经accept的通信套接字,会释放struct file 和struct socket,保留struct sock,并发送FIN包,开始四次挥手。
2025-11-17 15:22:59
1084
原创 HTTP cookie 与 session
1.username指明用户,expires是该持久cookie的失效时间,path和domain作为限制,只有url请求的是该路径的文件或子目录、发送的是特定的域名,那浏览器进程才会在http报头的选项中加上cookie。如果设置了secure,那么只有https请求,才会加上cookie,http就不行了2.Cookie中每个属性都以分号(;)和空格( )分隔, 属性的名称和值之间使用等号(=)分隔。注意。
2025-11-15 22:53:58
845
原创 进程间关系与守护进程
1、shell解析命令行,创建子进程后子进程设置为新进程组,仍处于同一会话2、如果是管道命令,多个子进程异步执行,通过管道来执行作业,这几个进程处于同一个进程组。
2025-11-13 22:13:00
761
原创 网络命令ping、netstat、pidof
其中TTL就是目的主机到ping进程主机所剩余的跳数,IP层报头里的TTL从64减为了53,序号的话ICMP报头里有,从ICMP响应报文有效载荷中读出发送请求时的时间戳,再和接收到响应报文的时间戳做减法,最后得到往来时间,ping进程将字符串write写进标准输出也就是从设备,然后终端驱动将从设备数据写进主设备,终端模拟器读出后显示出来。2.ping发送请求到目标主机,目标主机通过硬件中断和协议栈函数就处理了该请求,根本就没涉及套接字,但是ping进程一方必须有套接字帮助,只有硬件中断不行。
2025-11-10 21:02:20
1205
原创 线程概念与控制
Linux线程概念Linux线程概念什么是线程•⼀个程序⾥会有多个执行线路,其中的⼀个执⾏路线就叫做线程(thread)。•⼀个进程⾄少都有⼀个线程•线程在进程内运⾏,本质是在进程地址空间内运⾏•在CPU眼中,看到的线程的PCB都要⽐传统的进程更加轻量化•线程之间共享进程地址空间,可以看到进程的⼤部分资源,将进程资源合理分配给每个执⾏流,就形成了线程执⾏流分⻚式存储管理虚拟地址和⻚表的由来我们希望操作系统提供给进程使用的空间连续的,但是实际物理内存最好不要连续。
2025-11-02 21:05:28
553
原创 进程间通信
进程间通信方式1、管道匿名管道pipe命名管道2、共享内存system V共享内存posix 共享内存管道•管道是Unix中最古⽼的进程间通信的形式。•我们把从⼀个进程连接到另⼀个进程的⼀个数据流称为⼀个“管道”匿名管道站在⽂件描述符⻆度-深度理解管道。
2025-10-24 20:01:17
842
原创 动静态库制作和原理
got是全局偏移量表,有自己特定的节,如.got.plt,位于数据段,可读写plt是过程连接表,同样有自己的节,.plt是PLT桩代码,.plt.sec是PLT表项,位于代码段,可读可执行。
2025-10-20 11:33:19
927
原创 Linux的Ext系列文件系统
1、扇区是磁盘存储数据的基本单位,一个扇区通常512字节磁盘存储结构下扇区的定位方法---CHS地址定位C:cylinder,确定一个柱面H: header, 确定一个磁头,也就确定了磁道S: sector, 确定扇区凭借(c,h,s)就可以定位一个扇区注意编号的起始值:柱面(Cylinder)编号:从0开始。磁头(Head)编号:从0开始。扇区(Sector)编号:从1开始(注意,扇区编号不是从0开始)。磁道是扇区的一维数组,柱面是扇区的二维数组,但二维数组的本质也是一维
2025-10-16 20:15:31
818
原创 MySQL架构和存储引擎
MySQL8.0服务器是由连接池、服务管理⼯具和公共组件、NoSQL接⼝、SQL接⼝、解析器、优化器、缓存、存储引擎、⽂件系统组成。MySQL还为各种编程语⾔提供了⼀套⽤于外部程序访问服务器的连接器,也就是API。整体架构图如下所⽰:•为使⽤MySQL服务的编程语⾔平台,提供了访问接⼝,可以根据⾃⼰实际使⽤的编程语⾔到官⽹下载地址下载。•:是⼀个⾼级客⼾端和代码编辑器,以组件的形式提供,需要单独安装。
2025-10-14 22:25:37
676
原创 Linux基础IO详解
想弄得更好点就把当前mycat可执行程序的路径加到PATH环境变量下这三个是glibc标准库下定义的三个FILE*全局变量,在stdio.h中有extern声明,在程序中加上头文件后,在链接时就能找到这三个变量stdin & stdout & stderr分别指向0/1/2文件描述符对应的文件的FILE。
2025-10-13 16:49:01
289
原创 文件的二进制读写和文本读写
根据数据的组织形式,数据⽂件被称为⽂本⽂件或者⼆进制⽂件。数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存,就是⼆进制⽂件。如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的⽂件就是⽂本⽂件。
2025-10-12 14:48:04
239
原创 linux进程控制
fork函数初识在linux中fork函数是⾮常重要的函数,它从已存在进程中创建⼀个新进程。新进程为⼦进程,⽽原进程为⽗进程。
2025-10-11 13:19:26
704
原创 myshell编写及细节点说明
c语言在设计environ变量时,并没有将其定义在头文件中,不然每包一次该头文件,都会有一个新的全局char** environ被定义,最后程序链接的时候就会重命名出错,所以environ是定义在c的标准库中的,所有用到environ的地方都应该是extern char** environ声明,这样等到最后链接的时候就不会有问题。
2025-10-11 13:18:48
921
原创 MySQL服务器配置与管理
MySQL Server 有以下⼏种⽇志,可以记录服务器正在发⽣的活动1、Linux下默认开启错误⽇志和⼆进制⽇志2、在服务器运⾏期间可以控制⼀般查询和慢查询⽇志的禁⽤与开启,也可以更改⽇志⽂件名3、⼀般查询⽇志和慢查询⽇志记录可以写⼊⽇志表、⽇志⽂件或两者同时写⼊4、默认情况下,所有启⽤的⽇志都会写⼊数据⽬录的日志文件中,可以通过刷新⽇志强制服务器关闭并重新打开⽇志⽂件5、通过 FLUSH LOGS 语句刷新⽇志来强制服务器关闭并重新打开⽇志⽂件,也可以使⽤。
2025-10-08 10:30:46
635
原创 linux开发工具
yum(Yellow dog Updater, Modified)是Linux下⾮常常⽤的⼀种包管理器. 主要应⽤在Fedora,RedHat, Centos等发⾏版上.Ubuntu:主要使⽤apt(Advanced Package Tool)作为其包管理器。apt同样提供了⾃动解决依赖关系、下载和安装软件包的功能。
2025-09-30 21:07:01
1014
原创 MySQL程序简介
在平时使⽤MySQL数据库时,经常进⾏查询操作,有些查询语句执⾏的时间⾮常⻓,当执⾏时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要⽤⽇志记录下来称为慢查询⽇志,mysqldumpslow可以解析慢查询⽇志⽂件并汇总其内容通常情况下,mysqldumpslow 会将相似的查询分组,并显⽰摘要输出,⼀般会把数字和字符串⽤ N和 "S" 代替,要想显⽰真实的值可以使⽤ -a 选项。mysqldumpslow 可以使⽤以下语法。
2025-09-28 19:55:36
1117
原创 Linux命令总结
-z:在创建或提取归档文件时使用 gzip 压缩算法来进行压缩或解压缩(gzip)。-j:在创建或提取归档文件时使用 bzip2 压缩算法来进行压缩或解压缩(bzip2)。-C:指定 tar 命令的工作目录(Change directory),可以是要打包的文件所在的路径, 也可以是解压缩提取文件的路径。
2025-09-28 13:12:47
944
原创 使用c语言连接数据库
一般是MYSQL *mfp = mysql_init(NULL)获得一个MYSQL句柄MYSQL *mysql:前面mysql_init创建的句柄,使用mysql_real_connect来进行初始化host:mysqld服务器的ipuser:用户名db:要操作的数据库port:mysqld服务器的监听端口后面两个参数直接为nullptr和0即可qsql语句,可以是增删查改中的任何一种,甚至begin、commit这些也不在话下。
2025-09-24 21:21:31
923
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1