自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Golang 中创建守护进程的正确姿势

一直对守护进程有点迷糊, Srs的守护进程是通过两次fork实现的。C/C++一般的做法是fork一次, 然后调用setsid() 实现daemon, golang呢?守护进程的特点守护进程: 我的理解是脱离控制台的进程。一般我们执行程序都是在shell/bash下启动程序, 如果不以守护进程方式启动,该程序的父进程一般就是bash或shell, 通过ps -ef | grep xxx...

2019-01-09 16:02:26 9070

原创 文章标题

st的代码有一点难读, 主要是代理用了很多的宏实现, 这样gdb调试时断点不好设置, 而且库里面用到了一些偏底层的函数(对我来说, 很多函数都没有用到过), 比如mprotect, mmap之类的。 但是底层的原理还是比较简单的, 就是通过setjmp和longjmp实现缓存状态和切换。我是很想把这里理清楚的, 但是能力有限, 理理看。apue上将goto语句不能跨越函数, 执行这类跳转功能的函数

2017-07-02 23:03:04 343

原创 Linux 获取系统及硬件环境总结

1.获取cpu核心数: int count = (int) sysconf(_SC_NPROCESSORS_ONLN)mmap 函数getrlimit函数4.

2017-06-09 15:05:39 951

原创 ARP 协议

ARP 协议主要作用是查询 IP地址对应的MAC地址。是IPV4 网络中必不可少的协议。参考: 地址解析协议的学习,写的太好了!为什么需要mac地址呢?总结一下: 先简化为最简单的场景:同一局域网内的两台主机通信 1. 网络层通过IP地址寻址一台机器, 数据链路层通过使用物理地址寻址一台机器,ARP协议就是将IP地址转换为MAC地址的。 2. 原理:以主机A(192.168.0.1)向

2017-05-19 17:13:09 411

原创 TCP/IP 学习三-IP网际协议

3.1 引言不可靠(unreliable): 不能保证数据报能准确到达目的地。无连接(connectionless): 意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, IP数据报可以不按发送顺序接收。3.2 IP首部通过wireshark抓包对比学习IP数据报格式:

2017-05-12 18:42:12 284

翻译 centos mysql 环境搭建

在centos 上搭建mysql时, 用yum 安装总是出现很多问题, 参考网上的一篇文档,最终总算是搭好了。1. 卸载原有的mysql1. sudo rpm -qa | grep mysql2. sudo rpm -e --nodeps mysql // 强力删除mysql包3. sudo yum install -y mysql-server mysql mysql-devel4.

2017-05-09 16:45:58 393

转载 正则表达式

注意: 正则表达式与文件通配语法无关, 比如 *.xml正则表达式基础语法大部分的字符(包括字母和数字字符)是普通字符。他们只能匹配它们自己。 cat 匹配 cat有一些被称为“元字符”的特殊字符, 可以匹配特殊规则点 “.”匹配任意字符 c.t 匹配: 以c开头, 以t结尾, 中间是任意一个字符使用反斜杠“\”可以忽略元字符,使得元字符的功能与普通字符一样。 c.t 匹配: c.t c

2017-05-03 18:47:37 332 1

转载 一天内学会的计算机技能

转自: 一天内学会的计算机技能来自 Quora 网友,题主还补充说:注:这个问题特指和计算机打交道的技能。我有一个月的时间,我想学习很多大约一天就能学会的实用技能。我不期望(一天)精通,但有了良好理解后,我能做些基本操作。比如,我想学习如何使用 Eclipse 的调试器,如何创建 makefile,学习一些重要的 Linux 终端命令

2017-05-02 22:24:48 700

转载 raknet 性能测试

转自:酷壳的 性能测试怎么做如何严谨地做性能测试一般来说,性能测试要统一考虑这么几个因素:Thoughput吞吐量,Latency响应时间,资源利用(CPU/MEM/IO/Bandwidth…),成功率,系统稳定性。下面的这些性能测试的方式基本上来源自我的老老东家汤森路透,一家做real-time的金融数据系统的公司。一,你得定义一个系统

2017-05-02 09:48:04 1298

原创 Raknet 库学习二

这一节分析一下Raknet的数据结构, 主要以raknet/Samples/Chat Example目录下的聊天程序为例介绍展开。1. ChatClient 的大致流程:创建客户端实例: RakNet::RakPeerInterface *client=RakNet::RakPeerInterface::GetInstance()根据用户输入的客户端监听端口,服务器的ip, 端口, 初始化so

2017-04-28 00:04:06 592

原创 Raknet 库学习一

由于工作原因,接触到了Raknet库, Raknet是一个基于UDP传输协议的C++网络库。 1. raknet结构raknet是用cmake构建的(我这里是centos 64位环境), 从cmake很容易看出raknet的编译过程: 结构非常简单, 就是根据Source下的源文件,编译生成了一个静态链接库。2. raknet调试:开启raknet调试: cmake -DCMAKE_BUIL

2017-04-24 18:06:23 3844

原创 cmake

动态库 .so后缀的是动态库, 很多系统的库都是动态库, /usr/lib64 下回喊道很多这种的.so, 有的还会带上库的版本号cmake 设置动态库: 我的文件目录: ├── build ├── CMakeLists.txt └── src ├── core │ ├── utility.cpp │ └── utility.hpp ├─

2017-03-30 11:35:38 319

原创 docker centos7 环境下, 用man 报:No manual entry for xxx

参考: https://groups.google.com/forum/#!topic/docker-user/fuW0e9xlqQE之所以没有man帮助文档, 主要是docker为了保证img的占用小, 特意做的没有文档的镜像。解决方法很简单:1. sudo vim /etc/yum.conf, 删除 ‘tsflags=nodocs’这行2. 安装man:sudo

2017-03-28 11:04:20 825

原创 Nginx 调试一

Nginx的main函数: int ngx_cdeclmain(int argc, char *const *argv){ ngx_buf_t *b; ngx_log_t *log; ngx_uint_t i; ngx_cycle_t *cycle, init_cycle; ngx_conf_dump_t

2017-03-25 17:42:34 624

原创 Nginx 调试环境配置

Nginx 调试环境搭建从git上clone下来Nginx的代码 https://github.com/nginx/nginx修改auto/cc/conf文件, ngx_compile_opt="-c -g3"加上-g3。(一般是-g就可以了, -g3主要是为了调试Nginx时, 可以用gdb展开一些宏:展开宏的命令: macro expand <宏>)在Nginx目录下运行:./auto/c

2017-03-24 13:51:45 419

原创 leetcode 刷题(求树的直径)

树的直径的定义:The diameter of a binary tree is the length of thelongest path between any two nodes in a tree. This path may or may not pass through the root.我首先想到的思路是: 直径必然是两个叶子节点之间的距离的最大值, 怎么求这

2017-03-23 10:52:03 1452

原创 leetcode 二叉树--之建BST树

BST(binary search tree)即: 二分搜索树顾名思义, 这种树特别适合二分查找, 因为该树的所有左子树的节点都比根节点的值小, 所有右子树都比根节点的值大。leetcode 108题: Given an array where elements are sorted in ascending order, convert it to a height balanced BST。解

2017-03-15 21:53:47 561

原创 汇编寄存器总结

经常用到的寄存器有 cs, ds, ss, es, ax, bx, cx,dx, si, di, sp, bp, ip, psw。cs: ip 指定cpu 要读取指令的地址ss:sp 制定栈内存的地址ds 默认的段地址cx loop指令执行的时候进行2步操作(cx=cx -1 ; 判断cx的值)未完待续

2017-03-15 18:45:45 550

原创 const 真难啊

const 真TM 难啊const int a = 3;// easyconst int *b = &a;const int *x = b;// *x is a const value  *x = 4; // errorconst int *c = &a;x = c; // rightconst int* const y = b;

2017-03-10 10:00:24 297

原创 用汇编的思想理解C/C++

最近面试找工作, 遇到一个美团一个很好的面试官。 虽然面试结果可能不尽如意, 但是面试官给出的意见确非常中肯。 所以觉得有必要重新学习一下基础。 就从操作系统开始学起。刚好之前从git上发现有人共享了一本30天自制操作系统。 书的标题虽然有点夸张, 但是觉得还是觉得跟着一步一步写,效果会比单纯的看长篇大论的理论要好。 也放出github的地址, 有兴趣的也可以下下来看看。30天自制操作系统一切皆0

2017-03-02 23:08:43 1015

原创 30天自制操作系统--重新学习汇编指令

CPU 寄存器具有代表性的寄存器有以下8个:AX–accumulator, 累加寄存器 CX–counter, 计数寄存器 DX– data 数据寄存器 BX – base 基址寄存器 SP – stack pointer, 栈指针寄存器 BP – base pointer, 基址寄存器 SI – source ind

2017-03-02 21:41:19 449

原创 关于 strlen 和 sizeof的区别

关于strlen和sizeof的区别strlen 和 sizeof 自己一直没有注意去研究,一直迷惑, 凡事还需巨细靡遗啊!巨细靡遗! 巨细靡遗![strlen]c++ reference 中说: The length of a C string is determined by the terminating null-character: A C string is as long as t

2017-02-28 13:38:29 374

空空如也

空空如也

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

TA关注的人

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