自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 va_list 可变参数

#include <stdarg.h> //头文件#include <stdio.h>void PrintNumbers(int v, ...){ va_list va; va_start(va, v); while (v > 0) { printf("%d\t", va_arg(va, int)); --v; } printf("\n"); va_end(va);}int main(int argc, char* ar

2020-10-27 01:23:06 134

翻译 Operating Systems: Three Easy Pieces 读书笔记之目录篇

Operating Systems: Three Easy Pieces英文原版电子书:http://pages.cs.wisc.edu/~remzi/OSTEP/作者主页:https://github.com/remzi-arpacidusseau (其中包含中文翻译版书籍、homework 等)读完这本书将收获什么?(TOC)对操作系统的整体介绍,虚拟化 CPU虚拟化内存并发性...

2020-01-10 12:10:09 397

原创 coredump

设置 coreulimit -c 查看 core 文件限制,如果为 0,说明 core 开关关闭;ulimit -c 1024 设置 core 为 1024 个 block(一般 1 block = 512 bytes,也可以 ulimit -a 查看);ulimit -c unlimited 设置当前的 core 为无限制。或者设置为永久生效,方式是:修改 /etc/security/l...

2019-12-25 22:41:04 244

原创 守护进程

编写一个守护进程本文主要参考自:https://blog.csdn.net/zzyoucan/article/details/9105385fork() 一个子进程,并让父进程退出,从而让子进程变为孤儿进程,被 init 进程托管;但此时子进程依然复制了它父进程的进程组、会话、终端、工作目录、文件权限掩码(1)^{(1)}(1) 和文件描述符。setsid() 创建新会话期,从而:1)...

2019-12-25 17:15:44 126

原创 gcov 代码覆盖率

gcovgcov 随 gcc 直接安装,无须另外安装。使用方式:示例代码:// hello.c#include <stdio.h>int main(int argc, char* argv[]){ if (argc > 1) { printf("Number of arguments: %d\n", argc); for ...

2019-12-24 22:10:14 187

原创 ulimit 命令

常用选项-a:显示当前所有的 limit 信息-H:设置 hard 资源限制,如 ulimit -Hn 64-S:设置 soft 资源限制,如 ulimit -Sn 32-c:core file size,最大的 core 文件的大小,以 blocks 为单位,一般 1block=512bytes;-d:data seg size,进程最大的数据段的大小,以 kbytes 为单位;...

2019-12-24 14:50:35 703 1

原创 使用 gtest (Google Test) 进行 C++ 单元测试

环境我使用的 cmake 版本:2.8.11编译 Google Test下载 googletest:git clone https://github.com/google/googletest.git进入 googletest 目录:cd googletest创建 build 文件夹并进入:mkdir yybuildcd yybuild执行 cmake:cmake .....

2019-12-23 20:59:42 900

原创 gcc/g++ & gdb调试

gcc -g code1.cpp -o code1 (-g 用来 gdb 调试)gdb ./code1 (开始 gdb 调试)l (list 出代码)b 8 (在第 8 行处 break 设置断点)r (run 运行到断点处)p i (print 出变量 i 的当前值)backtrace(当发生错误时追溯错误,会以 #1、#2 …… 的形式列出错误)frame 3 (显示 back...

2019-12-18 11:00:26 213

原创 vim

快速移动到文件的第一行::0 或 gg快速移动到文件的最后一行::$ 或 G快速移动到当前行的行首:Home 键 或 0 或 ^ (home 和 0 移动到行首,^ 移动到该行的第一个字符)快速移动到当前行的行尾:End 键 或 $ (可以加上数字 —>1$:当前行尾,2$:当前行下一行的行尾)...

2019-12-17 18:18:05 90

原创 __BEGIN_DECLS 和 __END_DECLS

为了支持重载,C++ 在编译的时候会为函数加上参数类型(名字修饰),在链接的时候在符号表中查找类似 _func_i_i 的函数(void func(int, int)),而 C 语言并无重载,因此符号表中的函数就是函数名本身。为了让 C++ 编译的文件也能链接到由 C 语言编译的模块,需要加上 extern “C” 关键字,用来告诉 C++ 编译器,此 extern “C” {} 包含的代码需要...

2019-12-10 14:08:29 414

原创 Linux tar 命令:归档、压缩与解压缩

tar:作用是将多个文件归档为一个文件gzip, bzip2, compress:作用是压缩压缩文件的扩展名压缩程序解压程序在 tar 中对应的参数.gzgzipgunzip-z.bz2bzip2bunzip2-j.Zcompressuncompress-Ztar 命令:tar <参数> <压缩文件的文件名>...

2019-12-09 11:05:57 299

原创 进程前后台转换 and /proc/PID/status 查看进程状态

进程前后台转换进程后台运行:命令后面加上 & command &进程后台运行并将输出写入 nohup.out:nohup command &前台进程调入后台:ctrl+z 暂停后 bg %1后台进程调入前台:fg %1查看当前终端正在后台运行的进程:jobs -l查看进程状态cat /proc/PID/status部分字段解释:Name:进程名称...

2019-12-06 14:53:12 312

原创 Git

查看是否安装了 git: git安装 sudo apt-get install git创建版本库文件夹 mkdir yy_git进入文件夹 cd yy_git初始化,将该目录变成 git 可以管理的仓库 git init这时出现了 .git 目录,这个目录是 git 用来跟踪管理版本库的,不要随便修改git 只能跟踪文本文件的改动,不包括图片、视频以及 word 类型的文档等将文件...

2019-12-06 14:21:42 81

原创 TCP 连接中的 keepalive

TCP 连接中的 keepalive记一次InfluxDB写入抖动问题的排查和思考聊聊 TCP 中的 KeepAlive 机制tcp keepalive 解决半连接造成的占用服务器资源问题。$cat /proc/sys/net/ipv4/tcp_keepalive_time7200(一个 tcp 连接两小时没有数据传输则启动 keepalive 检测)$cat /proc/sys/...

2019-12-05 15:12:31 265

原创 操作系统 3 进程通信 & 线程

操作系统 3 进程通信线程

2019-10-16 23:50:22 106

原创 操作系统 2 进程的引入 、组成、组织、特征、状态、状态转换、进程控制

进程的引入 、组成、组织、特征、状态、状态转换、进程控制状态转换:进程控制:

2019-10-15 21:33:41 122

原创 操作系统 1 操作系统概念、功能、特征、发展阶段、运行机制、内核、内核态与用户态的切换、中断

操作系统概念、功能、特征、发展阶段、运行机制、内核内核态与用户态的切换、中断

2019-10-15 18:32:04 331

原创 HTTP

1 请求/响应报文结构1.1 请求报文1.2 响应报文与请求报文的区分在于 请求行 和 状态行。2 请求方法 Method幂等性:多次请求资源 和一次请求资源应该具有同样的副作用(除非在服务器端手动修改)。注意理解幂等性。幂等性的不同造成 GET&POST,PUT&PATCH 的适用性不同。为什么 PATCH 是非幂等的,为什么 PUT 是幂等的?—— PA...

2019-10-14 23:01:58 113

原创 C++内存模型 类的内存分布 函数调用栈

C++ 内存模型类的内存分布函数调用栈THE END

2019-10-14 15:34:22 118

原创 Effective C++ 条款 18 - 25【设计与声明】

Effective C++ 条款 18 - 25【设计与声明】条款 18:让接口容易被正确使用,不易被误用1. 如何让接口容易被正确使用?接口一致性 原则,即不要让用户需要努力记住他们应该做什么,例如 STL 中所有容器类型取大小的接口都是 size(),而没有 lenth(),count() 这些乱七八糟的。自定义的接口要尽量与内置类型保持一致,例如 operator= 重载应该返回...

2019-10-09 13:12:52 237

原创 Effective C++ 条款 13 - 17【资源管理】

Effective C++ 条款 13-17资源:内存 —— new 之后忘记 delete文件描述符 —— opendir() 之后忘记 closedir()互斥锁 —— lock() 之后忘记 unlock()数据库连接socket —— socket() 之后忘记 close()条款 13:以对象管理资源1. 不以对象管理资源会出现什么问题?看下面的代码:void ...

2019-10-08 23:04:16 148

原创 Effective C++ 条款 05 - 12【构造/析构/赋值运算】

Effective C++ 条款 05 - 12(注:08 还没看呢)条款 05:了解 C++ 默默编写并调用哪些函数如果并且只有当你自己没声明的时候,编译器会为类自动 声明 一个 构造函数、一个 拷贝构造函数、一个 拷贝赋值运算符、一个 析构函数;这些函数只有真正需要被调用的时候才会被自动 定义;这些函数都是 public 和 inline 的;只有基类的析构是非 private ...

2019-09-27 16:32:12 170

原创 Effective C++ 条款 02 - 04【让自己习惯 C++】

Effective C++ 条款 02 - 04条款 02:尽量以 const enum inline 代替 #define1. #define 的一些毛病#define 定义的内容不出现符号表中,编译器看不见,报错时难以追踪(用 const 就没有这个问题);#define 定义变量有可能会导致代码膨胀(用 const 就没有这个问题);#define 没有作用域的概念,自然也没有...

2019-09-27 12:10:35 248

原创 设计模式总结(持续更新……)

创建型模式简单工厂模式工厂方法模式抽象工厂模式建造者模式单例模式结构型模式适配器模式桥接模式(柄体模式、接口模式)动机:将实体和实现脱耦。实现:实体都继承自一个抽象的实体类,实现都继承自一个抽象的实现类。将实体和实现在抽象层面上关联起来。例子:用不同颜色绘制不同形状的图形,如圆形、矩形、三角形。这些图形继承自一个抽象的 Shape 类,是实体;用不同颜色进行绘制继承自一个...

2019-09-22 02:04:24 105

原创 抽象工厂方法

抽象工厂方法解释简单工厂方法:一个工厂,根据传给它的不同的标识(参数)来生产继承自同一个抽象产品类的不同的具体产品。工厂方法:每一个具体产品都用一个具体工厂来生产,这些具体工厂继承自一个抽象工厂,解决了简单工厂方法中工厂类不易扩展的问题。抽象工厂方法:在工厂方法上又引入了 “产品等级结构” 和 “产品族” 两个概念。也就是说,在工厂方法中,一个工厂生产一种产品,而在抽象工厂方法中,每个...

2019-09-04 15:45:04 152

原创 工厂方法模式

工厂方法模式解释:简单工厂模式是用不同的标识符来告诉同一个工厂应该创建继承自同一个抽象产品的哪一种具体产品。工厂方法将工厂也抽象出来,即,一种具体的产品对应于一种具体的工厂,这些具体产品继承自同一个抽象产品类,这些具体的工厂也继承自同一个抽象工厂类。当有新的产品加入时,只需要为这个产品再创建一个具体工厂。而当简单工厂方法中有新的产品加入时,需要修改工厂中的方法的具体实现,这破坏了设计模式...

2019-09-04 15:01:59 73

原创 安装 MySQL时 3306 端口被占用

解决方法:-> cmd-> netstat -ano|findstr 3306出现进程号-> tasklist在出现的列表中看是哪个进程占用了此端口-> 任务管理器找到这个进程,杀了他

2019-09-04 14:38:02 865

原创 简单工厂模式

简单工厂模式解释一个工厂类,根据获得的参数来构造不同的具体类,这些具体类继承自同一个抽象类。图形表示代码实现#include <iostream>#include <string>using namespace std;class Product {public: virtual void use() = 0;};class Concrete...

2019-09-04 14:01:07 73

原创 树状数组

树状数组树状数组

2019-08-29 21:54:00 80

原创 360笔试题:Bittttttts

360笔试题:Bittttttts题目:分析:题目起得真随意啊,是在暗示什么吗?然而我并没有用于位运算。如下图(实际中用的是 deque,因为需要在前面插入)代码:#include <iostream>#include <deque>using namespace std;int main() { int q = 0; cin &gt...

2019-08-29 14:42:53 250

转载 bitset

https://www.cnblogs.com/magisk/p/8809922.html

2019-08-29 11:30:15 91

原创 圈地运动

圈地运动题目分析:这道题的关键:能组成多边形的条件是:最长边的长度小于其它所有边的长度和。代码:#include <iostream>#include <algorithm>using namespace std;int main() { size_t nb = 0; while (cin >> nb) { ...

2019-08-29 10:38:42 272

原创 Linux 设置文件权限

Linux 设置文件权限字母组合形式数字形式

2019-08-26 14:26:09 438

原创 二叉搜索树的删除

2019-08-26 11:36:06 87

原创 素数对

素数对题目我的解法:思路:得到所有素数:一个素数向量 primes,如果数 k 不能被 primes 中的所有数整除,那么 k 也是一个 prime,把它加进去。(这个就很笨)判断有多少对素数对的和为 n :首尾指针 p q,如果对应的素数的和 < n,p 往前走;如果对应的素数的和 > n,q 往后退;如果对应的素数对的和等于 n,p 往前同时 q 也往后,计数结果增...

2019-08-25 22:22:58 335

原创 OOP 设计模式的六大原则

OOP 设计模式的六个基本原则设计模式的类别分为 结构型模式、创建型模式、行为型模式顾名思义即可(比如说创建型模式意思就是说应该按什么样的方式创建……)。设计模式的六大原则开闭原则(Open Close Principle)1)对扩展开放,对修改关闭。2)open:模块的行为必须是开放的、支持扩展的**,而不是僵化的。3)close:在对模块的功能进行扩展时,不应该影响或...

2019-08-24 18:33:02 1465

原创 剑指Offer:数组中只出现一次的数字

剑指Offer:数组中只出现一次的数字题目:我的解法我的愚蠢蠢蠢蠢解法:先快速排序,然后用栈找只出现一次的数字。class Solution {public: void FindNumsAppearOnce(vector<int> data, int* num1, int *num2) { if (data.empty()) return; ...

2019-08-24 15:08:06 171

原创 剑指Offer:平衡二叉树

剑指Offer:平衡二叉树题目:分析平衡二叉树:它是一棵空树,或者它的左右子树的高度差的绝对值不超过 1,并且它的左右子树也是平衡二叉树。解法一我能想到的最直接的递归解法如下:class Solution {public: map<TreeNode*, int> node_deepth; bool IsBalanced_Solution(TreeNod...

2019-08-24 11:19:12 97

原创 剑指Offer:二叉树的深度

剑指Offer:二叉树的深度题目分析简单的递归代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public:...

2019-08-24 09:39:56 117

原创 剑指Offer:数组中的逆序对

剑指Offer:数组中的逆序对题目插入排序解法(复杂度过高)这个方法不能 AC,运行结果是:运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。case通过率为75.00%什么还是写在这里吧...代码如下:class Solution {public: int InversePairs(vector<int> data) {...

2019-08-23 21:23:29 130

空空如也

空空如也

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

TA关注的人

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