自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

转载 history

使用 HISTTIMEFORMAT 显示时间戳当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:export HISTTIMEFORMAT='%F %T '# export HISTTIMEFORMAT='%F %T '# history | more1 2008-08-05 19:02:39 service ne...

2018-03-01 15:33:51 206

原创 ps

例1:列出目前所有的正在内存当中的程序 ps aux根据 CPU 使用来升序排序:ps -aux --sort -pcpu | less根据 内存使用 来升序排序:ps -aux --sort -pmem | less• USER:该进程属于那个使用者账号的?• PID :该进程的进程ID号。• %CPU:该进程占用的CPU 资源百分比;• %MEM:该进程占用的物理内存百分比;• VSZ :该进...

2018-03-01 14:26:05 374

原创 启动执行文件 profile,rc.local 等

/etc/profile此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行/etc/rc.local是给用户自定义启动时需要执行的文件profile,rc.local区别用户自己源码安装的软件组要自启动,可以在/etc/rc.local中配置,rc.loacl 是rc.d/rc.local的一个软连接。 rc.local -> rc.d/rc.lo

2018-02-28 13:55:08 1688

原创 lua闭包实例

闭包(closure)    在编写用于Lua的C函数时,我们可能需要一些类似于面向对象的能力,比如我们想在Lua中使用象这样的一个计数器类:1.  struct CCounter{2.      CCounter()3.          :m_(0){}4.      int count(){5.          return ++i;6.      }

2018-02-05 18:04:22 327

原创 lua调用C,C调用lua

例1:纯C环境下,注册C函数进LUA环境 (lua调用c)Main.c#include #include #include int foo(lua_State *L){  int n = lua_tonumber(L, 1);foo函数参数  lua_pushnumber(L, n + 1);foo 返回值  return 1; foo函数返回值个数}i

2018-02-05 15:31:58 445

转载 ulimit

ulimitulimit -a 查看所有限制值-c 设置core文件的最大值.单位:blocks-d 设置一个进程的数据段的最大值.单位:kbytes-f Shell 创建文件的文件大小的最大值,单位:blocks-h 指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限-l 可以锁住的物理内存的最大值-m 可以使用的常驻内存的最大值,单位:kby...

2018-01-17 17:09:07 173

原创 skynet消息调度机制

上一节讨论了c服务的创建,现在来讨论消息的派发和消费,本节会讨论skynet的消息派发和消费,以及它如何实现线程安全,要彻底弄清楚这些内容,需要先理解以下四种锁。互斥锁(mutex lock : mutual exclusion lock)概念:互斥锁,一条线程加锁锁住临界区,另一条线程尝试访问改临界区的时候,会发生阻塞,并进入休眠状态。临界区是锁lock和unlock之间的代码片

2018-01-15 22:39:19 781

转载 skynet--lua层消息处理机制

lua层消息处理机制协程的概念在讨论lua层的消息处理机制之前,首先要了解一个概念,协程。协程可以视为程序的执行单位,和线程不同,线程是抢占式的,多条线程是并行时运行的,而协程则不是,协程是协同式的,比如有三个协程按顺序先后创建coA、coB、coC,那么在没有任意一条协程主动挂起(yield)的情况下,执行顺序则是coA执行完,在执行coB,然后再执行coC。也就是说,除非有协程主动

2018-01-12 15:26:25 1252

转载 skynet 简介

写在最前面skynet是目前使用比较广泛的服务端框架,虽然目前网上资料众多,但是从自己的学习和使用经历来看,缺乏能够让自己系统了解该框架底层机制的资料,这段时间,趁着自己有时间,阅读了skynet底层的一些代码,现在将自己理解的部分总结并记录下来,以备日后使用。本文旨在捋清skynet框架的结构和主要流程,并不会涉及skynet的方方面面,一些论述,我贴上了一些源码加以论证,并在引用的源码

2018-01-12 15:19:42 15508 3

原创 poll实例

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //错误输出宏#define ERR_EXIT(m

2018-01-08 21:20:44 909

原创 select实例

#include #include   #include   #include   #include   #include   #include   #include     int main()   {       int server_sockfd, client_sockfd;       int server_len, clie

2018-01-08 20:52:54 1094

原创 epoll实例

edge triggered(ET:边缘),level triggered(LT:水平)模式几乎所有的epoll程序都使用下面的框架:[cpp] view plain copyfor( ; ; )     {         nfds = epoll_wait(epfd,events,20,500); 

2018-01-07 16:19:07 259

原创 centOS7安装中文man

1. 下载中文man包2. 解压编译安装tar zxvf manpages-zh-1.5.1.tar.gz          cd manpages-zh-1.5.1./configure --prefix=/usr/local/zhman --disable-zhtw          makemake install3. 为了不抵消man,我们新建cma

2018-01-03 14:08:39 1129

原创 UDP

UDP(User Datagram Protocol)     用户数据报协议不保障可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据服务端void main(){        err = WSAStartup(versionRequest, &wsaData);        if(err != 0 ){          printf("ERROR!");         

2018-01-02 16:15:23 151

原创 TCP

TCP ( Transmission Control Protocol)   传输控制协议通过三次握手建立连接,通讯完成时要拆除连接,比较可靠服务端sListen=socket(AF_INET, /*用来指定套接字使用的地址格式,winsock中只支持AF_INET*/               SOCK_STREAM, /*用来指定套接字类型。SOCK_STREAM 流套接字:TCP,SOCK

2018-01-02 15:24:07 196

转载 如何使用# ## ... _ _VA_ARGS_ _

1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue #define PSQR(x) printf("the square of" #x "is %d./n",(x)*(x

2015-01-22 10:17:50 336

转载 二 : using声明、using指示用于嵌套命名空间时的作用域

上一篇  using声明、using指示及其作用域详解  说的是函数内部或者全局作用域中使用using声明和using指示的情况,这里说的是在嵌套命名空间中使用using声明与using指示的情况。//named_namespace.h  命名空间成员声明与定义头文件[html] view plaincopyprint?#ifndef NAM

2015-01-15 11:56:53 361

转载 一 : using声明、using指示及其作用域详解

1. using 声明:一个using声明一次只能引入一个命名空间成员,从using声明点开始,直到包含该using声明的作用域结尾,声明的名字仅仅在该作用域是可见的,外部作用域中相同的名字被屏蔽,它可以出现在全局作用域,局部作用域或者命名空间作用域中,类中的using声明局限于使用其基类中定义的名字;using声明将名字直接放入出现using声明的作用域,好像using声明是命名空间成员

2015-01-15 11:56:04 509

转载 C++中的隐藏、重载、覆盖(重写)

1 重载与覆盖    成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。     覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。

2014-12-11 14:34:21 290

转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算

转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理      虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一

2014-12-11 07:26:46 275

转载 C++ 虚函数表解析

目录(?)[+]C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的

2014-12-11 07:25:25 274

转载 C++中重定义、重写、重载的区别以及隐藏与覆盖的访问

在C++中,有以下几个概念:重定义(redefine):派生类对基类的成员函数重新定义(即派生类定义了某个函数)该函数的名字与基类中的函数名字一样。重载(overload):函数名字相同,但它的形参个数或者顺序(或者类型不同)注意不能靠返回类型来判断。重写(override):派生类重定义基类的虚函数(即会覆盖基类的虚函数)。隐藏基类成员函数的情况:(非虚函数)如果在派

2014-12-11 07:22:00 309

转载 C++中的向上类型转换和向下类型转换

在c++的世界中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类,和基类向子类的强制类型转换。向上强制类型转换切割:覆盖方法和子类数据丢失的现象生成切割(slice)[cpp] view plaincopyclass Base  {  public:   int b;   virtual void

2014-12-11 07:21:14 343

转载 C++四种cast操作符

第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;ival + dval;//ival被提升为double类型2)一种类型表达式赋值给

2014-11-28 07:57:52 792

转载 全局变量如果不初始化,则默认为0,编译时编译器不提示“变量未初始化”

一、内存区域的划分      一个由C/C++编译的程序占用的内存分为以下几个部分:     1)、栈区(Stack):由编译器(Compiler)自动分配释放,存放函数的参数值,局部变的值等。其操作方式类似于数据结构中的栈。     2)、堆区(Heap ):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配   

2014-11-12 20:34:30 6383 1

转载 编码历史

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种

2014-11-04 00:35:18 701

转载 字符,字节和编码

字符,字节和编码[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问

2014-11-04 00:29:55 188

转载 各种排序算法

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插入排序 插入排序示意图插入排序是一种最简单直

2014-08-18 19:21:38 292

转载 sizeof struct

一般情况下,编译器会把struct中的成员作对齐处理,所以sizeof后不是等于所以成员大小之和。VC编译器做对齐处理的步骤如下(个人理解):1、首先获得struct中的大小最大的基本数据类型成员的大小,称为内存分配基大小(以下简称:基大小),这里的最大成员为double d1,d1的大小为8,所以基大小为8;2、按照顺序为struct中的成员分配内存:(1)、

2014-05-31 13:56:57 504

转载 Winsock I/O 方法 select

1.blocking(阻塞)模型最简单的模式,也是最基础的模式。2.select模型        其使用select函数实现对I/O的管理。select函数可以判断套接字上是否有数据,或者是否能够向套接字上写数据。设计这可函数的目的是,为了防止套接字处于阻塞模式时,I/O调用过程处于阻塞模式;或者当套接字处于非阻塞模式时,产生WSAEWOULDBLOCK错误。如果不满足实现规定的参数

2014-05-04 11:33:55 552

转载 堆栈区别

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—

2013-12-30 13:46:15 411

中文man压缩包

在安装之前,运行 locale 命令来查看自己的语言环境是什么,主要有影响的是 LC_ALL,LC_CTYPE 和 LANG 变量的值。如果语言环境是 zh_CN.UTF-8,可以运行 make u8 && make install-u8;如果语言环境是 GB2312,GBK 或者 GB18030,可 以运行 make gb && make install-gb;或者,可以下载对应的rpm 包来安装,同 样简单。对于 zh_CN.UTF-8,应当安装 man-pages-zh_CN-1.x,对于 GB2312,GBK ,GB18030,应当安装 man-pages-zh_CN-gb-1.x。请参阅讨论版上关于不同发行版 的系统与其默认中文编码的说明。

2018-01-03

The Design and Evolution of C++

The Design and Evolution of C++ 虽然是很老的东西 但却很全面

2011-12-29

空空如也

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

TA关注的人

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