05 2018 档案

摘要:Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 Linux进程状态:R (TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct 阅读全文
posted @ 2018-05-30 23:26 J1ac 阅读(1251) 评论(0) 推荐(0)
摘要:step 就是单步执行,遇到子函数就进入并且继续单步执行;在其他调试其中相当于step-into命令,作用是移动到下一个可执行的代码行。如果当前行是一个函数调用,则调试器进入函数并停止在函数体的第一行。step可以帮助初步揭开代码位置的谜团,例如:函数调用和函数本身可能在不同的文件中。 next 是 阅读全文
posted @ 2018-05-30 21:36 J1ac 阅读(9276) 评论(0) 推荐(0)
摘要:最近在看的一些web服务器源码的扩展部分基本上都使用到了.so动态库的运行时加载,也遇到了不少坑,看了不少网上的博客,在这里稍微总结转载一下,也是为了以后少走弯路。 首先需要了解的就是静态库与动态库的知识了,可以参考https://blog.csdn.net/jnu_simba/article/de 阅读全文
posted @ 2018-05-28 20:12 J1ac 阅读(4435) 评论(0) 推荐(0)
摘要:92. 背包问题 描述 在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i] 描述 描述 在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i] 在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品 阅读全文
posted @ 2018-05-26 16:57 J1ac 阅读(560) 评论(0) 推荐(0)
摘要:167. 链表求和 描述 描述 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例 给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8- 阅读全文
posted @ 2018-05-26 13:51 J1ac 阅读(857) 评论(0) 推荐(0)
摘要:首先是一些阅读本章所需要的英文术语: 这一章主要讲述构造函数以及拷贝构造函数在C++中的实现细节,有助于我们认识C++编译器在涉及对象构造时的底层操作。 构造函数 Default Constructor的建构操作 默认构造函数在需要的时候被编译器产生出来。对于下图所示bar对象,并不会有默认构造函数 阅读全文
posted @ 2018-05-25 14:38 J1ac 阅读(485) 评论(0) 推荐(0)
摘要:《深度探索C++对象模型》这本书也算是学习C++面向对象编程的必备书了,打算花上几天先简单的看一遍,这种书看上好几遍也不一定能理解太多,慢慢积累一点一滴吃透就好。下面把我看书过程中觉得比较有意义的摘录下来,也算是一种总结了。 第一章 关于对象 第一章首先谈到了C++在C的基础上增加对象封装之后所需要 阅读全文
posted @ 2018-05-24 23:20 J1ac 阅读(954) 评论(0) 推荐(0)
摘要:描述 描述 给一个二维矩阵, 每一个格子都可能是一堵墙 W, 一个敌人 E 或者空 0 (数字 '0'), 返回你可以用一个炸弹杀死的最大敌人数. 炸弹会杀死所有在同一行和同一列没有墙阻隔的敌人, 因为墙比较坚固难以摧毁. 样例 给一个矩阵: 0 E 0 0 E 0 W E 0 E 0 0 返回 3 阅读全文
posted @ 2018-05-24 14:38 J1ac 阅读(383) 评论(0) 推荐(0)
摘要:描述 给一字符串, 对形式为 a^i b^j c^k 的子序列进行计数, 即它由 i 个字符 a, 接着是 j 个字符 b, 然后是 k 个字符 c组成, i >= 1, j >= 1, k >= 1.Note: 如果两个子序列在原字符串中的index集合是不同的,则认为两个子序列不同。 给一字符串 阅读全文
posted @ 2018-05-24 12:46 J1ac 阅读(355) 评论(0) 推荐(0)
摘要:C++ 中的std::string和 C-style string 是两种不同的字符串,前者是标准库中定义的一个类,后者是字符数组的别名。 C-style string:通常都以\0作为结尾。 std::string:标准中未规定需要\0作为字符串结尾。编译器在实现时既可以在结尾加\0,也可以不加。 阅读全文
posted @ 2018-05-21 16:24 J1ac 阅读(496) 评论(0) 推荐(0)
摘要:Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。 学习webbench的源代码,把代码注释记录下来,也算是一个 阅读全文
posted @ 2018-05-20 17:03 J1ac 阅读(337) 评论(0) 推荐(0)
摘要:看webbench源码的时候碰到命令行解析工具getopt的使用,虽然之前也看过一点,但都不是很全面,只是了解个大概,下面稍微总结一下: getopt和optind: getopt被用来解析命令行选项参数。 #include <unistd.h> extern char *optarg; //选项的 阅读全文
posted @ 2018-05-20 12:55 J1ac 阅读(527) 评论(0) 推荐(0)
摘要:描述 给出两个数 A 和 B, 其中 B >= A. 我们需要计算结果 F 的最后一位数是什么, 其中F = B! / A!(1 <= A, B <= 10^18, A 和 B 非常大) 样例 给出 A = 2, B = 4, 返回 2 A! = 2 以及 B! = 24, F = 24 / 2 = 阅读全文
posted @ 2018-05-19 23:06 J1ac 阅读(284) 评论(0) 推荐(0)
摘要:描述 给你一个数n生成一个包含1-n^2的螺旋形矩阵 样例 n = 3矩阵为 [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]思路:和上一题打印螺旋数组思路相同,只不过这次改成了往数组里面填数字。 1 class Solution { 2 public: 3 /** 阅读全文
posted @ 2018-05-19 10:07 J1ac 阅读(191) 评论(0) 推荐(0)
摘要:这道题算是一道老题了,剑指offer上就有,虽然上面的解法我感觉也就那样。之前一次面试也碰到过,我用了个递归也算是写出来了,这次改用循环又写了一遍: 描述 给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。 样例 给定如下矩阵: [ [ 1, 2, 阅读全文
posted @ 2018-05-19 09:44 J1ac 阅读(168) 评论(0) 推荐(0)
摘要:描述 Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raini 阅读全文
posted @ 2018-05-18 22:17 J1ac 阅读(385) 评论(0) 推荐(0)
摘要:在看UNIX环境高级编程的时候其实学到最多的是UNIX/LINUX里面的信号(Signal)处理及其相关过程,今天回过头来又看了一遍,感觉不少地方又清晰了不少,写下来记录一下: 首先是从知乎上找来的一个关于信号处理过程比较好的总结: 1) A进程调用信号发送函数,发送信号给B,这是软中断,所以A进程 阅读全文
posted @ 2018-05-17 21:41 J1ac 阅读(433) 评论(0) 推荐(0)
摘要:uv_pipe_t — Pipe handle Pipe handles provide an abstraction over local domain sockets on Unix and named pipes on Windows. libuv中的uv_pipe起到的是unix like系 阅读全文
posted @ 2018-05-16 17:04 J1ac 阅读(4310) 评论(0) 推荐(0)
摘要:在学习libuv的线程相关API的时候碰到了uv_barrier_xxx相关函数,虽然说libuv的线程库总的来说和pthread差不多,但在看APUE的时候都没碰到过线程同步相关里面这个概念,于是网上查找了一下,总结如下: pthread_barrier_xxx系列函数在<pthread.h>中定 阅读全文
posted @ 2018-05-15 20:24 J1ac 阅读(875) 评论(0) 推荐(1)
摘要:转载自https://songlee24.github.io/2014/09/20/memory-alignment/ 下面是网易的一道笔试题:struct { uint32_t m1; char m2; } varray[2];以下哪些判断一定成立?(多选) 这个题目考查的就是内存对齐的知识点,看 阅读全文
posted @ 2018-05-15 11:13 J1ac 阅读(337) 评论(0) 推荐(0)
摘要:前言 学网络I/O的时候难免会碰到这样或那样的异步IO库,比如libevent、libev、libuv,看完UNP之后动手写过几个简单的小玩意,总感觉网络底层的那些函数使用起来好麻烦,一个接一个地man起来也挺费劲,于是学习这些成熟网络I/O库的想法应运而生。 初看这些库的简介感觉都差不多,原理和p 阅读全文
posted @ 2018-05-14 22:46 J1ac 阅读(6081) 评论(0) 推荐(0)
摘要:近日在看《STL源码解析》,STL里面一大堆泛型编程的确是非常巧妙,不过由于时间有限,我还是只能更加专注于日常使用比较多的一些知识。 Adapter是我在最开始使用STL Container的时候就听到的一个词,一直以来没有比较深入的了解,借着这次学习STL源码,在这里总结一下: 首先是Adapte 阅读全文
posted @ 2018-05-11 16:02 J1ac 阅读(999) 评论(0) 推荐(0)
摘要:1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关注、应用和研究。理解和掌握模板是学习、应用和研究以及扩充STL的基础。而STL模板实例中又充斥着大量的模板特化和偏特化。 阅读全文
posted @ 2018-05-10 10:14 J1ac 阅读(374) 评论(0) 推荐(0)
摘要:首先是关于IO多路复用的基础概念: select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写 阅读全文
posted @ 2018-05-05 22:39 J1ac 阅读(236) 评论(0) 推荐(0)