数据结构: 字符串2

2017-05-22
阅读 1 分钟
1.3k
strcpy {代码...} {代码...}

elf文件格式

2017-05-20
阅读 1 分钟
2.1k
布局和结构 {代码...} ELF header Program Header Table Section Symbol Table(section.symtab) 定义: 该模块所定义的符号信息以及引用其他模板的符号信息 : (T or U, address) {代码...} String Table .rel.data. & .rel.text

深入理解计算机系统 第三章

2017-05-20
阅读 1 分钟
2.8k
过程 3.7.1 栈帧结构 {代码...} 3.7.3 寄存器使用惯例 {代码...} 3.7.4 过程示例 {代码...}

linux文件读写浅析

2017-05-19
阅读 4 分钟
2.3k
将磁盘上的数据缓存在内存中,加速文件的读写。实际上,在一般情况下,read/write是只跟缓存打交道的。(存在特殊情况)read就直接从缓存读数据。如果要读的数据还不在缓存中,则触发一次读盘操作,然后等待磁盘上的数据被更新到磁盘高速缓存中;write也是直接写到缓存里去,然后就不用管了。后续内核会负责将数据写回磁盘。

UNIX高级环境编程 第13章 守护进程

2017-05-19
阅读 2 分钟
1.5k
引言 守护进程:没有控制终端,长期运行在后台的进程 编程规则 {代码...} {代码...} {代码...} {代码...} {代码...} {代码...} {代码...}

vfs基础

2017-05-18
阅读 5 分钟
3.6k
VFS是Linux中的一个虚拟文件文件系统,也称为虚拟文件系统交换层(Virtual Filesystem Switch)。它为应用程序员提供一层抽象,屏蔽底层各种文件系统的差异.如下图所示:

C++11: 右值引用 addition

2017-05-08
阅读 2 分钟
1.7k
Because the move assignment operator takes an rvalue reference to a non-const std::string. The rvalue can, however, be passed to the copy assignment operator, because an lvalue reference-to-const is permitted to bind to a const rvalue.

多线程编程 杂谈

2017-05-06
阅读 2 分钟
2.2k
False sharing is a term which applies when threads impact the performance ofeach other while modifying 【independent】 variables sharing the same cache line.

core文件生成及使用

2017-05-06
阅读 1 分钟
4k
core dump 生成的原因 {代码...} 生成core dump 文件 {代码...} GDB调试 死锁调试 {代码...}

弱回调

2017-05-06
阅读 2 分钟
3.3k
弱回调 {代码...} {代码...} {代码...} {代码...}

多线程编程 :基础概念

2017-05-02
阅读 1 分钟
1.4k
线程与进程 线程定义 {代码...} 引用 Linux进程状态解析 {代码...} {代码...}

C++11: nullptr_override _final

2017-05-02
阅读 1 分钟
1.4k
nullptr C++11新特性,避免出现如下情况 {代码...} override 避免在继承时,本意是重写,却由于参数类型的错误,变成了重载 {代码...} final 类似java中的机制,将函数写死,不允许派生类进行重写 {代码...}

C++11: 右值引用

2017-05-02
阅读 2 分钟
2.5k
[abondoned] 参考1参考2参考3 参考4参考5 :代码实现 概念理解 意义 {代码...} 左值&右值 {代码...} 非常量左值引用和&常量左值引用 {代码...} 右值引用举例 {代码...} {代码...} std::move {代码...} {代码...} {代码...} 参考 返回右值引用 {代码...} {代码...} {代码...} To Add Up 【参考4 MORE IMPORTANT】...

unix signal : signalfd, eventfd, timerfd

2017-05-01
阅读 7 分钟
2.7k
If EFD_SEMAPHORE was not specified and the eventfd counter has a nonzero value, then a read(2) returns 8 bytes containing that value, and the counter's value is reset to zero.

多线程编程:编程题

2017-04-30
阅读 5 分钟
3.5k
problem 1 {代码...} {代码...} {代码...} problem 2 {代码...} {代码...} {代码...} problem 3 {代码...} {代码...} {代码...} {代码...}

多线程编程:pthread_key_t AND __thread

2017-04-30
阅读 1 分钟
2.7k
pthread_key_t {代码...} {代码...} __thread {代码...}

effective C++ : CHAPTER 8

2017-04-28
阅读 2 分钟
1.4k
继承自 NewHandlerSupport的每个class,拥有实体互异的NewHandlerSupport复件。 Template机制会自动为每一个T生成一个currentHandler

C++11: atomic 头文件

2017-04-25
阅读 1 分钟
2.7k
利用CAS实现自旋锁 {代码...} 引用

多线程编程: Compare And Swap (CAS)

2017-04-25
阅读 1 分钟
2.8k
比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。 该操作通过将内存中的值与指定数据进行比较,当数值一样时将内存中的数据替换为新的值。

linux : 锁实现原理

2017-04-24
阅读 3 分钟
4.7k
In computing, a futex (short for "fast userspace mutex") is a Linux kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables.

C++ inline关键字

2017-04-24
阅读 1 分钟
2.2k
误解三:virtual函数即使声明为inline,由于是late binding,无法判断实际调用的版本,编译器也无法展开。事实:虚函数调用并不总是late binding;late binding发生在通过指针或引用来调用函数的时候,在其它情况下理论上是可能对 virtual inline的函数进行展开的

设计模式:工厂模式

2017-04-22
阅读 1 分钟
2k
针对每一种产品族提供一个工厂类。通过不同的工厂实例来创建不同的产品族实例。能生产多种产品族(eg, 牙刷、洗脸奶、牙刷等)1.系统中有多个产品族,而系统一次只可能消费其中一族产品2.同属于同一个产品族的产品以其使用。

C++ : vector与string的内存分配问题

2017-04-22
阅读 1 分钟
2.2k
{代码...}

C++ std::bind

2017-04-22
阅读 3 分钟
2.1k
std::bind {代码...} {代码...} std::function 引用 {代码...} {代码...}

设计模式:observer

2017-04-19
阅读 1 分钟
2k
结构图 代码 {代码...} {代码...}

设计模式 : singleton

2017-04-19
阅读 1 分钟
1.4k
线程安全的Singleton实现 {代码...}

C++ : share_ptr

2017-04-18
阅读 2 分钟
1.7k
share_ptr 循环引用导致的内存泄露 {代码...} 意外延长对象的生命期 容器存放shared_ptr对象 {代码...} Solution 1 {代码...} Solution 2 {代码...} std::bind in C++11 {代码...} define custom destructor {代码...}

C++ : 智能指针

2017-04-18
阅读 1 分钟
1.8k
{代码...} {代码...}

C语言:do{}while(0)

2017-04-17
阅读 1 分钟
1.6k
do{} while(0)好处 替代{},实现局部作用域. {代码...} 避免使用goto,用break做跳出. {代码...}

HTTP状态码: 301/302/303/307

2017-04-14
阅读 1 分钟
4.7k
对于301、302的location中包含的重定向url,如果请求method不是GET或者HEAD,那么浏览器是禁止自动重定向的,除非得到用户的确认,因为POST等请求是非冥等的(也就是再次请求时服务器的资源可能已经发生了变化)