自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(373)
  • 资源 (17)
  • 收藏
  • 关注

原创 fork()需要注意的一些问题

fork函数用户创建一个和自身一样的子进程,子进程是父进程的副本,子进程得到与父进程用户级虚拟地址空间相同的(但是独立的)一份拷贝,包括文本、数据和bss段、堆以及用户栈等。子进程还获得与父进程任何打开文件描述符相同的拷贝(比如子进程可以读写父进程中任何打开的文件),他们有完全独立的拷贝(当然linux使用了cow技术,只有改变才会真的拷贝),就是说两边的修改互不影响,父进程和子进程之间最大的区别

2017-05-10 23:56:11 2493

原创 Protocol Buffer 学习笔记

今天准备用Protobuf做一些序列化下载的版本是 3.2.0 https://github.com/google/protobuf/releases/download/v3.2.0/protobuf-cpp-3.2.0.tar.gz 下载之后按照说明开始按照,在编译的时候发现编译不过,环境是centos 6.5,错误如下In file included from ./google/p

2017-03-07 14:07:53 3864

原创 STL的流处理类学习

概述之前一直用STL提供的流处理类写一些代码,但也没有认真总结过,对于很多东西还是不理解,这两天看了一下做一些总结,总体的类图关系如下:下面是借鉴网上的一张图,哪些类包含在哪里也写清楚了这些流处理类大致可以分为三类:1. iostream,主要是处理终端的输入输出,分为istream 和 ostream,是我们用的最多的,cin、cout、cerr都是内部定

2017-02-18 17:44:53 2282

原创 gcc编译链接的一些总结

编译链接的顺序-l library           Search the library named library when linking.  (The second alter-           native with the library as a separate argument is only for POSIX           compliance a

2017-02-15 15:21:49 1233

原创 ZooKepper学习入门

相关网站官网 https://zookeeper.apache.org/官网的中文翻译(不完整) http://zookeeper.majunwei.com/ZooKeeper的三种模式和部署ZooKeeper有单机、伪分布式 和 分布式 三种部署模式http://www.ibm.com/developerworks/cn/opensource/os-cn-zook

2016-06-14 14:14:27 3094

原创 c++memset一个类

在c里面我们经常memset一个结构对象,c++里面得类对象也可以这么做,但需要注意:1)如果类成员包含了其他类对象,memset会导致这个成员不可用2)如果类包含虚函数,memset会把虚函数表指针清空,导致访问虚函数的时候crash

2016-06-08 10:18:57 2429

转载 linux内存管理

本文以32位机器为准,串讲一些内存管理的知识点。 1. 虚拟地址、物理地址、逻辑地址、线性地址 虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差一个线性偏移量。用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍称之为线性地

2016-03-18 23:27:49 1926

转载 Linux内存管理之mmap详解

转自 http://blog.chinaunix.net/uid-26669729-id-3077015.html一. mmap系统调用1. mmap系统调用        mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。

2016-03-18 23:20:52 1916

转载 如何实现一个malloc

原文出处: 张洋的博客   任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C

2016-03-18 23:10:14 2152

原创 Lua笔记

注册c函数一般我们用 luaL_register,比如lua_register(L, "testfunc", testf); 其中testf就是c函数,这样lua就可以调用了我们还可以批量注册函数static luaL_Reg mylibs[] = { {"add", add}, {"sub", sub}, {NULL, NULL} };

2016-02-06 08:03:18 3029

原创 effective c++笔记

effective c++笔记为什么尽量使用const,enum,而不使用define?除了我们所知的类型检查问题之外,define是全局的,没有私有的概念,不能控制作用范围多个编译单元(一般就是多个源文件)non-local static变量的初始化顺序无法保证?所谓non-local static就是指不在函数体内(函数内的变量是local变量)的全局变量,静态变量,他的初始化顺序编译器

2016-01-23 15:54:36 1612

转载 腾讯发布80页重磅报告:哪些行业将被颠覆

http://mp.weixin.qq.com/s?__biz=MzAxNzcyMTk5NA==&mid=403743564&idx=1&sn=b66597092285f0a6a7442b6da7463fdf&scene=0#wechat_redirect

2016-01-16 10:01:07 1883

原创 Linux下的一些时间说明

之前对时区这个东西没有仔细研究过,这两天在开发中遇到了相关的问题就仔细看了一下。首先几个概念,在网上搜索了一下1、UTC: Universal Time Coordinated 协调世界时,又称世界标准时间UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间),是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的

2015-12-09 11:14:41 3417

转载 Memory Debuggers

http://elinux.org/Memory_DebuggersMemory DebuggersSeveral tools exist for finding memory leaks or for reporting individual memory allocations of a program. These tools help analy

2015-06-09 11:01:24 1769

转载 Linux 查看内存(free buffer cache)

转自  http://elf8848.iteye.com/blog/1995638Linux下如何查内存信息,如内存总量、已使用量、可使用量。经常使用Windows操作系统的朋友,已经习惯了如果空闲的内存较多,心里比较踏实。当使用Linux时,可能觉的Linux物理内存很快被用光(如频繁存取文件后),当程序结束后内存没有被释放。空闲内存少的可怜,心里总不踏实。Lin

2015-04-17 12:39:13 2507

转载 vim/vi编码问题

如果vim打开文件是乱码可以用用以下方法解决,之前我们可以通过enca命令查看文件的编码类型在vi中输入冒号 然后执行下面的命令如果系统编码不是utf8,vi看uft8编码文件时这样用:set termencoding=euc-cn encoding=utf8如果系统编码不是gbk,vi看gbk编码文件时这样用:set termencoding=euc-cn encod

2015-02-12 10:43:19 2182

转载 swap的使用和调整

linux支持虚拟内存,用作虚拟内存的硬盘部分被称为交互空间(swap space),虚拟内存是指使用磁盘当作内存的扩展,这样可用内存的大小就相应的增大了。内核会将暂时不用的内存块的内容写到硬盘上,从而空闲的内存就可用于其他目的。当需要用到原始内容时,再从硬盘重新读入内存。但读写硬盘的速度比直接使用内存要慢得多,数千倍。linux可以使用文件系统中的一个常规文件或一个独立的分区作为交换空间。交

2015-01-16 11:32:51 10399

转载 /proc/pid

attr:进程的属性 cmdline:启动进程时执行的命令cat cmdline /home/user/test cwd:指向进程当前工作目录的软链 environ:进程执行时使用的环境变量,文件内容使用null字节('\0')分隔,然后以null字节结束。因此获取进程使用的环境变量使用如下

2015-01-15 16:07:59 3282

转载 libevent

======================================================================================================================libevent的多线程模型  转自http://blog.csdn.net/bokee/article/details/6670550最近在阅读mem

2015-01-13 16:59:59 2956

转载 select、poll、epoll之间的区别总结[整理]

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用

2014-12-30 10:35:43 1885

转载 Windows 下主程序与动态库(*.dll)释放对方分配的内存操作要点

同样的代码程序:主程序中释放了一块在 动态库(*.dll)或共享库(*.so) 中分配的内存,Windows 将会出现程序崩溃,而 Linux 则正常运行。在 linux 下,每个进程只有一个 heap ,在任何一个共享库模块 *.so 中通过 new 或者 malloc 来分配内存的时候都是从这个唯一的 heap 中分配的,那么自然你在其它什么

2014-11-13 11:06:48 3576

转载 《英雄联盟》支撑最高750万同时在线用户的聊天服务打造

摘要:回顾《英雄联盟》的发展无疑是一个高速成长的光辉史,然而这个光辉史赖以生存的基础设施却不得不克服一次又一次的挑战,历经一次又一次的迭代,就比如本次我们要说的聊天服务。【编者按】在2013年初马化腾被问及“过去两年腾讯在海外投资中最成功的案例是什么”时,他毫无疑问的回答:“投资美国的Riot Games,做出《英雄联盟》。”在那个时候,《英雄联盟》这款游戏仅上市3年,却以500万同时

2014-10-30 10:35:17 1804

转载 windows下通过map,cod分析堆栈

一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的方法来找原因,通过生成map文件,由于2005取消map文件生成行号信息(vc6.0下是可以生成行号信息的,不知道microsoft怎么想的,在2005上取消了),只能定位在那个函数发生崩溃。这里可以通过生成cod文件,即机器码这一文件,具体定位

2014-10-30 09:43:23 2477

转载 图解TCP-IP协议

本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。图1 TCP 三次握手四次挥手图1主要包括三部分:建立连接、传输数据、断开连接。1)建立TCP连接很简单,通过三次握手便可建立连接。2)建立好连接后,开始传输数据。TCP数据传输牵涉到的概念很多

2014-09-19 09:33:04 9906 8

原创 linux统计莫端口流量

我是想获取21端口上的流量,规则是这样写的:iptables -A INPUT -p tcp --dport 21获取该端口的字节数iptables -vnxL INPUT|awk '/tcp.*21/{print $2}' 如果是网关的话,把INPUT 改为FORWARD

2014-08-26 18:32:08 5264 1

转载 IAAS、PAAS、SAAS

IaaS:是Infrastructure as a Service,基础设施即服务,消费者通过Internet 可以从完善的计算机基础设施获得服务。例如AWS,OpenStack,CloudStack提供的虚拟机计算服务。通过互联网就可以获得有计算能力的服务器,不需要实际的服务器资源。SaaS:是Software-as-a-service,国内通常叫做软件运营服务模式,简称为软

2014-08-26 09:42:26 1126

转载 linux动态库的初始化和清理

a. Windows 中有 DllMain 入口函数, 而 Linux 中则没有。   b. Linux 中有特殊函数 _init 和 _fini, 主要是分别用来初始化函数库和关闭的时候      做一些必要的处理, 我们可以把自己认为需要的代码放到这两个函数里面, 它们分别      在函数库被加载和释放的时候被执行。具体说, 如果一个函数库里面有一个名字为      "_

2014-08-07 16:25:43 8904

转载 推荐一位工作流管理新贵:Trello

因为最近一直在给某组织寻找一些工作工具,很自然就想到,比起目前的邮件组沟通模式,工作团队需要个更快速、高效的工作流(work-flow)管理平台。但通过一段时间的观察,发现了一个奇怪的趋势——凡是带有工作流管理性质的应用或项目,都会扯出一堆项目管理、内容管理、日程管理的复杂功能。这对我目前的需求是相悖的,团队工具必须有着很低的学习曲线,显然它们对大众的要求太高了。在年前,在与果壳某

2014-07-28 09:49:31 1482

转载 5分钟弄懂Docker

摘要:7月3日“Docker之道”培训中,笔者发现大家对Docker的理解还比较初级,刚好看到了一篇通俗易懂的文章,看完后对Docker有了一个清楚的认识,在这里分享给读者。编者按:7月3日的“CSDN在线培训:Docker之道”,同时在线人数达到了历史新高,但是最后的QA环节,笔者发现大家的问题还是很初级的,Docker技术还处在Gartner技术曲线的萌芽期。刚好前几天看到了一篇非

2014-07-14 09:47:21 1034

转载 pthread_cond_wait

1. 首先pthread_cond_wait 的定义是这样的The pthread_cond_wait() and pthread_cond_timedwait() functions are used to block on a condition variable. They are called with mutexlocked by the calling thread or

2014-07-09 16:00:35 888

转载 Lua中的require

主要翻译自lua文档,加上了programming lua中自己的一些理解require(modname)加载给定的模块.函数首先检查表package.loaded来判定modname是否已经存在.如果存在,则require返回package.loaded[modname]所存储的值否则它尝试为模块找到一个加载器(loader).要找到一个加载器,require首先查询

2014-06-16 19:43:27 921

原创 SMART原则

战略在被执行的时候要细化成一个个小目标。这些目标都遵循了著名的SMART原则目标必须是具体的(Specific)目标必须是可以衡量的(Measurable)目标必须是可以达到的(Attainable)目标必须和其他目标具有相关性(Relevant)目标必须具有明确的截止期限(Time-bound)

2014-06-16 09:48:57 1233

转载 关于LINUX C中函数strtok使用要点

strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述使用的源代码大部分来自于网络,我稍加修改作为例证。当然,本人水平有限,有不妥之处望各位多多指教。strtok的函数原型为char *strtok(char *s, char *delim),功能为“Parse S into tokens separated by characters in DEL

2014-06-13 09:41:16 929

转载 谷歌是如何做代码审查的

在上一篇文章中提到过,我已经不在Google工作了。我还没有想清楚应该去哪里—有两三个非常好的工作机会摆在我面前。因为在这段做决定时间里,我不再受雇于任何人,我想可以写一些专业性的东西,一些很有趣,但也会在同事和管理工作中导致关系紧张的东西。Google是一个非常优秀的公司。他们做出了很多令人称赞的东西—既是公司外部,人们可以看到的东西,也是公司内部。有一些在公司内部并不属于保密的

2014-06-06 09:56:59 1418

转载 C/C++代码优化的27个建议

本文由 伯乐在线 - 周昌鸿 翻译自 cs.clemson.edu。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经

2014-05-26 10:09:49 2340

原创 CUDA笔记

一个gpu只能被一个cpu线程来处理,不能冲突,不然异常如果你有2快卡,可以一个线程控制一块卡

2014-05-22 15:43:42 704

转载 undefined reference问题总结

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/431329    最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'

2014-05-19 09:39:51 714

转载 Step By Step(Lua目录)

转自  http://www.cnblogs.com/stephen-liu74/archive/2012/07/30/2487201.html

2014-04-25 10:04:57 704

转载 Step By Step(Lua调用C函数)

Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作

2014-04-25 10:02:28 745

原创 TCPCopy的安装和使用

官网地址 https://code.google.com/p/tcpcopy/  里面有包的下载地址、文档 和常见问题。TCPCopy 有传统架构和新架构,新架构比较复杂,一般情况下传统架构就可以了。TCPCopy分为TCPCopy client和TCPCopy server,其中TCPCopy client运行在在线服务器上面,用来捕获在线请求数据包;TCPCopy server

2014-04-17 09:46:59 13855

熟悉binutils工具集.pdf

非常好的讲gnu binutils的文章,借用一下

2011-01-07

UNIX Network Programming 第一卷 源码

UNIX Network Programming 第一卷 源码 非常好的书,附上源码便于阅读和实验

2009-05-27

GCC 中文使用手册

linux下的编译工具,适合初学者学习

2008-03-04

麻省理工学院-算法导论(part 5)

上次没有传完整的,重新来(最后一部分),很金典的算法书,英文的。

2008-01-06

软件开发文档

一些有用的软件开发相关文档,需求说明书、概要设计说明书等

2007-12-26

严蔚敏版数据结构

如果要看中文版的数据结构,就看严蔚敏的。<br>阅读密码www.zasp.net

2007-12-26

设计模式chm

经典的模式,软件开发必备手册

2007-12-26

Windows 网络编程第二版

原版的,如果英文可以的话就……

2007-10-13

麻省理工学院-算法导论

麻省理工的,共有5个部分

2007-09-29

麻省理工学院-算法导论

麻省理工的,共有5个部分

2007-09-29

麻省理工学院-算法导论

麻省理工的,共有5个部分

2007-09-29

麻省理工学院-算法导论part1

麻省理工,共有5个部分

2007-09-29

深入浅出 MFC

非常经典的MFC教程,让你容易理解mfc机制

2007-09-23

c函数速查

非常实用的c语言资料

2007-09-23

Sams Teach Yourself SQL in 10 Minutes, Third Edition

sql的一本很不错的书

2007-09-23

inside the c++ object model

深入了解C++对象模型

2007-09-23

空空如也

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

TA关注的人

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