Recent Posts

Linux man手册相关小技巧

本文有 2674 字,大约需要 6 分钟可以读完, 创建于 2012-12-04

Linux下的编程实践中,man手册页的作用是不可小视的,每一个高效的Linux程序员必然往往也具备快速的通过man手册页找到所需文档的能力。本文是一些关于man手册使用中的一些小技巧总结。

Linux上如何从C++程序中获取backtrace信息

本文有 7433 字,大约需要 18 分钟可以读完, 创建于 2012-11-27

许多高级程序语言都提供了出错时候的调用栈打印功能,以方便尽快得到基本的出错信息,比如Java的runtime异常栈打印和Python的pdb库都提供了详细到行号的运行时信息以便调试。作为接近系统底层的高级语言,C/C++中要达到类似的功能却是很麻烦的,因为程序中的符号信息可能被strip,甚至编译器在优化阶段也会...

awk高级特性

本文有 2301 字,大约需要 5 分钟可以读完, 创建于 2012-11-26

UNIX环境下,用shell做一些常见的文本处理工作是很方便高效的事情;虽然目前有很多自带丰富类库的脚本语言可以完成同样的事情,但是对于一些特殊的文本格式处理任务,传统的sed/awk/grep组合还是有很明显的优势:没有复杂的版本问题和类库部署依赖问题,能够快速解决问题。awk作为一门DSL,自身也带有对很多高...

C++新特性3 - Lambda支持

本文有 2426 字,大约需要 6 分钟可以读完, 创建于 2012-08-26

lambda表达式(closure)是C++11中新引入的对程序组织构造改进最大的特性之一;这一特性并不是一个新的概念(几十年前的函数式于样都提供了该特性),然而对于一个深受过程式思维影响的语言而言,lambda的支持则极大提高了代码的抽象能力和可读性。

C++11新特性2-RValue Reference 与 Move

本文有 4191 字,大约需要 10 分钟可以读完, 创建于 2012-08-19

现有的C++03标准中,不必要的对象的拷贝和临时对象的构造经常会造成额外的性能开销(即使有返回值优化这样的编译器优化来帮忙也不能解决好多情况的问题);新的C++11标准通过对语言的修正,引入了RValue Reference和Move来解决这一问题。