主函数: int main(int argc, char *argv[]) { g_listen_fd = CreateTcpSocket(port, ip, true); listen(g_listen_fd, 1024); SetNonBlock(g_listen_fd); for (int i = 0; i < cnt; i++) { ... 作者:liushengxi_root 发表于 2019/03/12 20:30:38 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88421955 阅读:33 继续阅读 >>


刘生玺 19/03/12 20:30:38
文章目录什么是Hook层?静态链接库加载时的动态链接(可省略,编译原理得好好学了,深入理解计算机系统也该看看了)运行时的动态链接实例:(1)使用LD_PRELOAD(2)不使用LD_PRELOAD总结:libco中的hook技术实例: libco中的read函数 什么是Hook层? 就是通过 hook 系统的 socket 函数族来实现无需修改代码的异步化改造。简单来说,就是利用动态链接的原理来修... 作者:liushengxi_root 发表于 2019/03/12 15:29:04 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88421227 阅读:61 继续阅读 >>


刘生玺 19/03/12 15:29:04
玩吃鸡->谩骂词语->会变成****->如何实现的? 实际上,这些功能最基本的原理就是字符串匹配算法,也就是通过维护一个敏感词的字典,当用户输入一段文字内容之后,通过字符串匹配算法,来查找用户输入的这段文字,是否包含敏感词。如果有,就用“***”把它替代掉。 我们前面讲过好几种字符串匹配算法了,它们都可以处理这个问题。但是,对于访问量巨大的网站来说,比如淘宝,用户每天的评论数有几亿、甚至几十... 作者:liushengxi_root 发表于 2019/03/11 11:51:39 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88385675 阅读:52 继续阅读 >>


刘生玺 19/03/11 11:51:39
先行阅读:Linux 内存管理机制(内核空间层面分析) 内部碎片与外部碎片 在内存管理中 内部碎片是已经被分配出去(能明确指出属于哪个进程)的内存空间,却不能被利用的内存空间.(就是已经被分配出去的内存空间大于请求所需的内存空间,而导致有些内存自己不使用,别的也不能使用) 外部碎片是指还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的内存空间空闲块。 伙伴,别名Buddy(较好的解... 作者:liushengxi_root 发表于 2019/03/10 22:15:59 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88377620 阅读:25 继续阅读 >>


刘生玺 19/03/10 22:15:59
xxxxxxxxx 作者:liushengxi_root 发表于 2019/03/10 21:49:12 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88384661 阅读:29 继续阅读 >>


刘生玺 19/03/10 21:49:12
文章目录递归树与时间复杂度分析实战一:分析快速排序的时间复杂度实战二:分析斐波那契数列的时间复杂度实战三:待补充,先学其他的... 递归树与时间复杂度分析 我们前面讲过,递归的思想就是,将大问题分解为小问题来求解,然后再将小问题分解为小小问题。这样一层一层地分解,直到问题的数据规模被分解得足够小,不用继续递归分解为止。 如果我们把这个一层一层的分解过程画成图,它其实就是一棵树。我们给这棵树起一个名... 作者:liushengxi_root 发表于 2019/03/10 13:41:07 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88376100 阅读:40 继续阅读 >>


刘生玺 19/03/10 13:41:07
1. /* 题目描述 如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。 小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列 输入描述: ... 作者:liushengxi_root 发表于 2019/03/09 21:45:33 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88371736 阅读:49 评论:1 查看评论 继续阅读 >>


刘生玺 19/03/09 21:45:33
Libco协程切换 声明:下面的都是参考Libco 协程栈的切换理解 函数调用的原理 linux 程序内存布局 传统linux程序(32bit)拥有4G的虚拟内存区域,高1G的区域供内核使用,剩余的3G内存供程序使用。按段划分,主要分程序段(text segement)、数据段、BSS段。BSS段用于未初始化的静态变量的初始化(0值初始化)。栈从高到低地址增长。堆从低到高增长。栈和堆的这两种不同的... 作者:liushengxi_root 发表于 2019/03/07 15:52:42 原文链接 https://blog.csdn.net/liushengxi_root/article/details/88284512 阅读:75 继续阅读 >>


刘生玺 19/03/07 15:52:42
   对于程序员来说,整个计算机系统由四个重要的模块组成,分别是:CPU,网络,磁盘,内存。在我们的程序或者系统出现问题时,我们应该分别有一定先后顺序的对这四块进行排查。而在Linux系统下,有很多高效的工具,可以帮助我们分析定位问题.以下分门别类来介绍一下,主要参考了下列文章: Linux下常用系统分析工具总结 1.CPU top,strace,perf,vmstat 1.1 top top... 作者:liushengxi_root 发表于 2019/03/07 08:52:33 原文链接 https://blog.csdn.net/liushengxi_root/article/details/86609125 阅读:36 继续阅读 >>


刘生玺 19/03/07 08:52:33
Epoll 概述 epoll是linux中IO多路复用的一种机制,I / O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。当然linux中IO多路复用不仅仅是epoll,其他多路复用机制还有select、poll,但是接下来介绍epoll的内核实现。 网上关于epoll接口的介绍非常多,这个不是我关注的重点,但是... 作者:liushengxi_root 发表于 2019/02/26 23:14:20 原文链接 https://blog.csdn.net/liushengxi_root/article/details/87926566 阅读:27 评论:1 查看评论 继续阅读 >>


刘生玺 19/02/26 23:14:20