
C/C++
文章平均质量分 53
liangkwok
2010年硕士毕业于东南大学计算机系,数据挖掘方向,先后在腾讯社交网络事业群、互动娱乐事业群担任后台开发工作,现任职拉手网,历任高级架构师、技术总监。在平台架构设计、架构优化,高海量并发、团队管理方面有丰富的经验
展开
-
C/C++中的正则表达式库GNU Regex Library&PCRE/PCRE++
2010-10-28 12:06转载自 joec3最终编辑 joec3一、GNU Regex Library1. 什么是GNU正则表达式库(GNU Regex Library) ?GNU正则表达式库是glibc(GNU C Library)的一部分,它提供与POSIX标准兼容的正则表达式匹配的接口。这里是其主页:http://www.gnu.org/s/libc原创 2011-06-22 21:43:00 · 1030 阅读 · 0 评论 -
TLV 格式及编码
一种可变格式,TLV的意思就是:Type类型, Lenght长度,Value值;Type和Length的长度固定,一般那是2、4个字节;Value的长度有Length指定;解析方法: 1.读取type 转换为ntohl、ntohs转换为主机字节序得到类型;指针偏移+2或4 2.读取lenght,转换为ntohl、ntohs转换为主机字节序得到长度;指针偏移+转载 2012-09-24 15:10:56 · 1488 阅读 · 0 评论 -
UNIX IO---文件描述符
在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面重点来说下,文件描述符是如何工作的。 文件描述符相当于一个逻辑句柄,而open,close等函数则是将转载 2012-09-12 20:31:36 · 509 阅读 · 0 评论 -
linux 0号进程 1号进程 区别
系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。整个linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程,它是所有进程的祖先。由0号进程创建1号进程(内核态),1号负责执行内核的部分初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,转载 2012-09-12 20:34:04 · 620 阅读 · 0 评论 -
Valgrind原理和检测S++插件内存泄漏的实例方法
0、背景 前几天用valgrind解决了一个台server的内存泄漏(图片上传到存储平)的问题,下面是valgrind的原理和使用方法,感兴趣的同学可以看一下,希望对大家有帮助。J1、介绍Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。Valgrind的最初作者是Julian Seward,他于2转载 2012-04-09 17:59:49 · 4281 阅读 · 0 评论 -
C++内存管理
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权转载 2012-04-09 17:29:29 · 1170 阅读 · 0 评论 -
C++著名程序库的比较和学习经验
C++著名程序库的比较和学习经验(转自校内,了解一些基础的还是很有必要)1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8转载 2012-01-04 11:03:30 · 501 阅读 · 0 评论 -
容易造成core的原因
类别子类别描述变量异常:数组越界字符串异常结束局部变量过大全局变量线程不安全 数组越界使用数组必须检查下标越界字符串异常结束使用char sss[100]类似的字符串时,判断’\ 0’结束标志,而不是判断长度局部变量过大分配很大空间的局部变量导致栈翻译 2012-02-02 10:08:53 · 1943 阅读 · 0 评论 -
一个大量TIME_WAIT解决办法
下午由于某产品那边静态化出现问题,转为动态化。导致*.*.*.*上一个中转server出现大量的TIME_WAIT 连接状态,大概达到5万多次。这个server的访问量一大,基本上就不work了;处理方法记下: 修改内核配置参数,修改 /etc/sysctl.conf文件,增加如下3行。net.ipv4.tcp_syncookies = 1 (表示开启SYN Cookies。原创 2012-02-02 10:07:02 · 640 阅读 · 0 评论 -
#pragma once 与 #ifndef
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句转载 2012-02-02 09:56:32 · 333 阅读 · 0 评论 -
gcc和g++的区别
gcc和g++的区别很多人不是很明白GCC与G++的区别gcc和g++都是GNU(组织)的一个编译器。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.转载 2011-08-21 11:12:41 · 321 阅读 · 0 评论 -
strncpy和snprintf的正确用法详解
<br />copyleft by bitfly @ http://bitfly.cn<br />permalink: http://blog.bitfly.cn/post/strncpy-vs-snprintf/<br />==================== 正文 ====================<br />strncpy的正确用法:<br />strncpy(dest, src, sizeof(dest));<br />dest[sizeof(dest)-1] = ‘/0’;<br />s转载 2011-05-10 09:50:00 · 809 阅读 · 0 评论 -
c++多线程编程
http://blog.youkuaiyun.com/hitwengqi/article/details/8015646转载 2015-10-28 10:17:33 · 474 阅读 · 0 评论