自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程服务器编程之muduo中base库与net库详细注释

muduo学习寒假写的,这个是github链接,之前一直写的比较乱,今天终于抽出时间整理了一下。前言:寒假在学习muduo的时候,将muduo中net库和base库源码进行了注释,基本所有的重要代码都进行了详细注释,比较重要的类比如Eventloop类,Channel类部分函数每行都进行了注释,还改进了几个小功能,比如Exception类增加了处理函数名的功能,在使用时看起来更加方便...

2020-03-14 15:48:37 381

原创 我的ACM代码库

以后加我的二分写法int search(int array[], int n, int v){int left, right, middle;left = 0, right = n - 1;while (left <= right){ middle = (left + right) / 2; if (array[middle] > v) { ...

2019-10-20 18:01:09 529 3

原创 Linux网络和eBPF

目录关于本文如何实现分类器和流量控制程序套接字过滤器程序(BPF_PROG_TYPE_SOCKET_FILTER)套接字相关程序功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入关于本文Linux 现在已经支持了很多种和网络相关的

2022-03-23 14:49:21 1968

原创 高性能高并发网络库 ssxrver 介绍

ssxrver地址 : https://github.com/RandyLambert/ssxrver _______. _______.___ ___ .______ ____ ____ _______ .______ / | / |\ \ / / | _ \ \ \ / / | ____|| _ \ | (----` | (----` \ V /

2021-02-17 00:37:03 697 2

原创 一个小型操作系统的学习与实现

github地址: https://github.com/RandyLambert/ssxOSssxOS ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░▌ ▐░▌ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░▌

2020-12-24 23:25:47 1538 5

原创 从开机到分段分页都做了什么?

该目录下实现了简易的 mbr 与 loader ,Intel 8086 有20条地址线,因此可以访问 1MB 的内存空间,是 0x00000 到 0xFFFFF,为了解 mbr 和 loader 的作用,我们先看看在 intel 8086 中,实模式下的 1MB 内存布局是什么样子起始结束大小用途FFFF0FFFFF16BBIOS 入口地址,此地址属于BIOS 代码,当操作系统刚开始加载时, CPU 默认 CS:IP 值为ffff:0000,通过此部分是16字节的跳转指令,

2020-12-19 19:38:03 924 1

原创 Linux I/O 多路复用技术 epoll 源码分析

epoll 源码分析在 Linux 下做网络编程,一定需要对 epoll 有深入的了解,因此我在这里对 epoll 的源码做了注释,因为源码过长,所以摘出来一些重要的数据结构和关键代码,对其做了注释(从暑假拖到12月份也太真实了…),github地址.epoll 介绍什么是 I/O 多路复用?在讲解 epoll 之前,我先简单介绍一下什么是多路复用,其实能想着去了解 epoll 底层实现原理的人一般不会出现这种疑问,但是我还是简单的说一下吧.当我们在进行网络编程的时候,经常会出现一种场景.我

2020-12-06 14:39:27 260

转载 使用scp上传文件到服务器或从服务器下载文件(支持跨越跳板机)

转载 原文链接 原贴写的很好,我转载懒得排版了scp是什么?使用man scp可以看到scp的解释『scp — secure copy (remote file copy program)』,scp是一个安全拷贝工具,支持远程拷贝,它支持本地拷贝到本地(当然这个一般不会用它,直接用cp就行)、本地拷贝到远程(上传)、远程拷贝到本地(下载)、远程拷贝到远程。scp是使用ssh通道来传输的,所以,linux服务器都是自带scp的,scp传输文件要输入密码的问题,可以通过设置ssh免密码登录即可解决。实

2020-08-31 14:06:57 3102

原创 deepin v20安装git导致设置被删除(DDE被卸载)解决方案

前两天deepin崩了,然后重装了一个deepin v20,今天在下git的时候有搜到了一篇教程问题运行了下面这个命令,结果他在下载的时候没有任何警告和提示的卸载了我的DDE,设置什么的都没了,直接连其他终端也打不开了。sudo apt install git-all解决方案根据被卸载的包一个一个的下回来主要是dbus-user-session和dde两个。sudo apt-get install dbus-user-sessionsudo apt-get install dde.

2020-08-06 11:07:04 681

转载 C/C++谷歌风格编程指南

读书笔记 |Google C++编程风格指南C++代码规范,督促自己写规范的代码。主要参考Google 的C++ 风格指南,总结一下,便于规范自己的代码。1. 总体规则总体上函数命名,变量命名, 文件命名 要有描述性, 少用缩写. 尽可能使用描述性的命名,让代码易于理解更重要.不要用只 有项目开发者自己能理解的缩写,也不要通过砍掉几个字母来缩写单词。并且使用合适的缩进,添加必要的空格,让...

2020-02-02 11:13:44 383

原创 手把手教你写makefile

前言:对,我就是标题党,我也不太会写makefile,本篇只是入个门,只能教你写一些简单的makefile。为什么要学makefilemake工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的,所以在你写项目是,只需要编写一次,之后你编译的时候只用make一下就行了。makefile命名...

2020-01-29 20:57:23 892

原创 网络编程利器nc和telnet命令的简单使用

两个命令的介绍telnet命令telnet可以实现的功能:1.连接服务器端口,并进行通信2.登录远程telnet服务器,使用命令行对其进行控制nc命令nc可以实现的功能:1.监听服务器端口,并与客户端通信(最多只能接收一个客户端)2.对指定服务器进行端口扫描3.作为客户端连接到远程服务器进行通信.两个命令的下载在使用之前,很多Linux发行版本没有集成这个命令,我的机器是...

2020-01-28 14:32:20 1909

原创 高性能线程池C语言版(简单实现动态扩容和销毁)

前言:之前在暑假留校期间,简单的学习了线程池的实现,经过里半年的学习,我对线程池,和对线程池在网络编程中的重要性有了更深的一层理解。在用c++写之前先巩固一下环境编程的基础知识,毕竟这些知识点都是相通的,只是换了套API罢了。为什么要使用线程池?在进行网络编程的时候,一个服务器往往会需要服务很多客户端,可以把这个过程抽象成一个生产者消费者模型,服务器充当生产者,客户端充当消费者,在C/S模...

2020-01-19 21:05:58 1925 7

原创 C++STL库String类实现

前言:按照源码中String类的设计方式实现简单的写了一个myString,参考C++官网中的标准stringAPI完成几乎所有的String类的方法,尽量与源码实现风格类似,有部分没实现有的功能之间相似度较高,重复工作意义不大就没写,有的是没办法写。亲自在我写的数据结构课设哈弗曼树中使用,没有出现特殊问题,自己测试也没有出问题,如果哪里有错希望大家可以给我指出来。(一) 关于扩容在开始...

2020-01-13 00:14:54 972

原创 Linux下使用GCC编译时到底进行了什么?

前言:在Linux下,我们都清楚一段代码要变成一个可执行文件,他需要经历预处理,编译,汇编,链接这四个过程。在这每一步都需要进行很多工作,这里我结合王老师的深入分析gcc和程序员的自我修养这两本书来笼统讲一下单单编译这个过程到底干了什么事情。GCC的逻辑结构-是不是单看这张图感觉有点不知所措?接下来我将每一个步骤来一个一个进行解释。选择高级语言这张图的上半部分的第一大块是选择高级...

2019-12-08 18:03:12 405

转载 学习网络编程的好文都有啥?

深入浅出tcp/ip协议栈水一篇,以后可能会在加一些文章的链接

2019-12-03 20:05:22 186 2

原创 C++继承多态总结

#include <iostream>using namespace std;//子类必须重写父类的纯虚函数,不然两个函数都是不可生成对象的,那么这两个类也就没有意义 ////虚析构//解决问题是 当子类空间中有堆区内容,释放的时候导致释放的不干净,内存泄露//virtual ~Animal(){//cout <<"Animal的析构函数调用"<&lt...

2019-12-01 01:07:23 275

原创 C++智能指针初学常用细节

前言:智能指针部分的知识实在是太多了,好多东西我也不是很理解,限于篇幅和我个人能力,我这篇文章只能总结部分有关问题,更多知识点还需要去看c++ primer这本书的相关内容,另外auto_ptr由于已经过时,本文也不会提及。在c++中动态内存的管理是用一对运算符完成的:new和deletenew:在动态内存中为对象分配一块空间并返回一个指向该对象的指针。delete:指向一个动态独享的指针...

2019-11-21 22:49:54 363 1

原创 C++类模板函数模板总结

前言:在c++的学习中,模板是一个非常重要的知识点,虽然自己编程时很少去写的函数模板,类模板,但是在以后工作的时候,要经常去使用阅读别人写好的模板,而且要是以后要去看stl源码的话,理解c++经常使用的类是如何实现的,那对模板这一块的知识必须要有足够的了解。函数模板1.函数模板的语法在一个函数之前写上template <typename T>void test1(){}但...

2019-11-02 16:39:16 498

原创 双连通图强连通图概念解释以及tarjan算法求解该类问题总结

最近看了看类的相关题,感觉简单的题很简单,但是难题的转化如果对概念不清楚,很难写,我怕我要是不看,过段时间就又模糊了,故总结一下。tarjan老先生是一位大牛,发表了很多算法,名字都叫tarjan名叫Tarjan的三大算法分别为(1) 有向图的强联通分量(2) 无向图的双联通分量(求割点,桥)(3) 最近公共祖先这里前两类问题比较相似,而...

2019-10-24 15:23:06 4975

原创 树状数组入门 区间查询和单点修改洛谷p3347 && 单点查询和区间修改洛谷p3368

前言学树状数组只图一乐,真学技术还得看线段树,但是图一乐还得图一乐,树状数组在时间和空间复杂度上还是更加优秀的,而且代码量也小的很多。当然,线段树和树状数组,他们两个都能使对一个区间的数修改以及查询的速度提升许多。而线段树的功能更加完善,对于算法比赛来说,学了树状数组是远远不够的,还是得在回去看看线段树。先来模板吧,对于单点查询和区间修改和区间查询和单点修改这两种,代码模板是一样的,还有一...

2019-10-16 17:23:09 242

原创 理解manacher马拉车算法 洛谷p3805

最近学习了马拉车求回文串长度的算法,感觉这个比较难理解,放的时间稍微一长,今天一看,发现就快忘记了,所以写一篇博客总结一下。算法复杂度为o(n),实际上只是初始化串一遍和走过串一遍,效率比字符串哈希和两层for循环好的多。具体详情请参看注释,适合之前已经了解马拉车算法,现在复习时看看。洛谷p3805题目描述给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文串的长度....

2019-10-09 20:29:34 329 1

原创 LinuxC编程实战进程间通信和信号初步总结

信号:64种killkill ptc c信号非常有先通知好kill -l系统中的信号进程可以忽略大多数信号(也可以被阻塞)出了让他死的内核有标准处理洗好程序信号无优先级管道像io两个进程管道两边管道不能广播数据不能确定便捷无法判断哪一个发数据msg2命名管道是打开之后才会使用...

2019-08-27 16:26:56 218

转载 UEFI和BIOS的区别和Linux下GPT与MBR分区的区别

uefi详解如何查看efi分区内容BIOS和UEFI引导区别硬盘分区MBR和GPT选哪个好原来写博客这么简单

2019-08-26 16:08:05 628

原创 大一课设 C 语言版 TTMS

如果你是西安邮电大学软工的专业大一学生,大一学年年底会写一个项目叫ttms,主要的项目文档,学校会发一本蓝书,200页左右,作为西邮计算机专业大一最难课设,其实看懂那本蓝书在下手写很简单,而且写到后来就是复制粘贴,难点不多,因为框架给了,认真写很好写,而且学校为了让你能好好更好学习了解计算机知识,故意在书里搞出好多错误让你去找去改,很贴心。————————————————————————————...

2019-08-25 23:24:51 2106 1

原创 暑期留校感悟与大一到现阶段总结

今天是8月25号,小组留校结束,算法队留校还在继续,粗略算了一下自己已经留校差不多40天了,一个暑假的确学了不少东西,但是还是感觉有点没到之前的预期,可能之前对自己要学的东西错误预估了。暑假里其实有过放松的时候,但是大多时间还是比较认真的在学习,小组的氛围很好,晚上睡得就算在晚,早上就算在累,小组成员也基本上都在,我感觉比较骄傲的是,大一的好像就我和坤坤全勤,没请过一次假。学习内容主要是lin...

2019-08-25 21:47:59 521 2

原创 LinuxC编程实战 xunchat聊天室(伪)项目文档

西邮Linux兴趣小组 暑期项目开发设计文档项目名称:xunchat聊天室项目作者:孙首勋1.项目引言1.1项目综述该项目基本模拟QQ的功能,可以实现群聊,私聊,收发文件,查看聊天消息等基本功能,进行操作优化,对于添加好友,添加群聊有应有的项目交互,支持多个用户接入实时聊天。1.2术语表序号术语或缩略语说明性定义1C/SClient/Server模型...

2019-08-25 20:29:05 582

原创 Linux下的进程线程经典实验(哲学家吃饭,生产消费者模型等)

上一周完成是任务不是非常的好,所以总结一下,希望这一周能做好requirement(代码已补全)进程实验#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <signal.h>#include <ctype.h>#include &l...

2019-08-05 22:29:52 499 2

原创 LinuxC简单实现epoll高并发的使用

epoll的使用实现原理在网上整理了一些博客的内容,百度了一些内容,加了点自己的理解,现在的理解还过于浅显,对于具体的细节还一头雾水,过一段时间在重新过来修改在之前我学习的进行tcp的套接字编程之中,使用的是select进行的多路复用,服务器端大概流程为1.创建一个套接字create2.初始化服务端的套接字地址结构3.进行绑定band4.化被动为主动,进行监听listen5.通过...

2019-08-03 13:44:55 510

原创 ACM和OI算法常用STL整理

string类常用操作功能构造函数产生或复制字符串析构函数销毁字符串=,assign赋以新值Swap交换两个字符串的内容+=,append( ),push_back()添加字符insert ()插入字符erase()删除字符clear ()移除全部字符resize ()改变字符数量replace()替换...

2019-07-30 14:18:38 610

原创 LinuxC实战—myshell(cd内置命令,重定向,管道,屏蔽ctrl+c,自动补全,移动光标,命令切换,ls自带颜色)

实现屏蔽^c信号,只要这一行代码 signal(SIGINT,SIG_IGN);补全功能和移动光标,命令切换____readline库自动补全这个功能需要用Readline 库 ,没有的话需要安装,至于如何使用readline推荐这篇帖子点一点 sudo apt-get install libreadline6-dev 因为readline 是动态链接库 所以 ,编译的时候 需要加...

2019-07-27 14:02:21 750

原创 wait()和waitpid()解析

wait()函数说明wait(等待子进程中断或结束,相关函数 waitpid,fork)表头文件#include<sys/types.h>#include<sys/wait.h>函数原型pid_t wait (int * status);函数说明参数 status 是一个整形指针。如果status不是一个空指针,则终止进程的终止状态将存储在该指针所指向的内存...

2019-07-27 12:01:16 1144 1

原创 LinuxC实战—ls命令实现(-R,-a,-l)

暑假留校前两天实现ls命令基础功能:主要问题:功能实现:实现ls命令基础功能:主要问题:一些玄学问题(改了好久 )当使用lstat(path,&buf)函数时,如果path路径最后含有 / 符号(例home/),函数无法正常使用。此处有问题,需要先用一个int数据接一下,不能直接操作因为电脑原因,无法完整实现ls -R类全部功能(某些Windows文件无法访问)拓展知识当...

2019-07-20 17:57:27 541

原创 LIS类(最长上升子序列)问题,洛谷p1439

县复制别人的解释,ubuntu大字有问题,啥时候用widows在写我的理解怎么O(nlogn)搞一个最长上升子序列吧。考虑一个数列5 2 3 1 4首先,把5加入答案序列中,然后加2,发现2<5所以显然2替换5不会使结果更差,那么答案序列就是{2},然后加3,发现3>2,所以直接把3加到答案序列中:{2,3}然后加1,我们发现1<3,于是我们找到一个最小的但是比1大的数...

2019-05-22 23:04:36 233 5

原创 codeforces 994C Two Squares暴力

C. Two Squarestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given two squares, one with sides parallel to the coordinate axes, a...

2019-05-22 15:37:46 236

转载 ACM计算几何问题

最近看到关于计算几何的东西,总结以下矢量的概念:如果一条线段的端点是有次序之分的,我们把这种线段成为有向线段(directed segment)。如果有向线段p1,p2的起点p1在坐标原点,我们可以把它称为矢量(vector) p2。矢量矢量加减法:设二维矢量P = ( x1, y1 ),Q = ( x2 , y2 )。则矢量加法定义为: P + Q = ( x1 + x2 , y1 ...

2019-05-21 16:29:42 599 3

原创 XiyouLinuxgroup 2015 2017 2018面试题

先从2017年写

2019-05-20 01:25:06 378

原创 POJ 1730 Perfect Pth Powers(最暴力 pow枚举)

Perfect Pth PowersTime Limit: 1000MS Memory Limit: 10000KDescriptionWe say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, for some integer b, x = b...

2019-05-08 21:12:26 213 1

原创 LightOj 1197 数论基础(求素数打表进阶)Help Hanzo

代码如下欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入|改的时间太久了心态爆...

2019-05-06 17:36:22 193 3

空空如也

空空如也

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

TA关注的人

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