摘要:
一、为什么会考虑这个问题 假设框架提供一种机制,这种机制对于处理之后的所有对象都会执行释放(delete)操作,但是对于一些存在于内存池中的结构,如果使用默认delete操作就会有问题,因为默认的delete操作是把指定内存当做堆中空间操作的,所以对于位于内存池中的类型就需要考虑是不是需要重载自己的 阅读全文
摘要:
一、using的所有语法功能 using这个关键字当然不是在C++11中添加的,但的确是在C++11中扩展了这个关键字的意义,其中最关键的扩展就是增加alias这种语法意义。直接查看gcc的代码,可以清晰的看到using关键字的所有用法及意义。在gcc-4.9.0\gcc\cp\parser.c文件 阅读全文
摘要:
一、为什么需要extension Protobuf的文档明确说明了禁止继承protobuf的消息,而且在生成的C++消息中也添加了final来从语法上完全禁止继承这些消息。protobuf把这些说明放在序列化和反序列化这个条目下,可能主要是基于序列化/反序列化的处理。但是在某些情况下,如果我们一定要 阅读全文
摘要:
一、Message消息的可视化展示 将消息转换为二进制结构,必然提高了结构的传输效率。但是和通常的二进制文件格式一样,为节省空间付出的代价就是牺牲了部分的可读性,就像linus对systemd中二进制文件的看法一样“I dislike the binary logs, for example”。转换 阅读全文
摘要:
一、问题 当我们通过ssh登录一个远端服务器的时候,通常需要通过输入密码来验证是一个合法的、被授权(authentic)的用户,验证的方法其实就是通过密码来验证。这个密码从哪里来呢?很显然,密码是在远端机器上创建当前登录用户的时候设置的,也就是通过useradd -p设置的密码。这里的验证逻辑是:如 阅读全文
摘要:
一、背景说明 对于某些git项目,可能只有少数几个人(假设为Maintainer——M)有何如权限,其它人的合入需要这些有权限的开发者(假设为Developer——D)合入,当然,这通常的流程都是某个程序员fork自己的分支,合入,然后有M合入主线分支。这个流程是假设M和P都经过公共的远端服务器进行 阅读全文
摘要:
一、DNS的基本功能 在互联网中,从域名到IP地址的转换是一个基础功能,之前一直想结合流行的DNS服务器bind来看下服务器侧的配置,所以最近有时间就总结一下。对于应用(或者说客户端)来说,对域名服务的使用主要基于C库的gethostbyname函数,该函数实现比较复杂,事实上,在glibc的根目录 阅读全文
摘要:
一、git stash的man手册中对该命令的说明 git需要保存的内容:1、本地修改并且已经通过git add添加到缓存区的2、本地修改但是还没有添加到缓存区的3、可能还包括本地添加但是没有track的 DISCUSSION A stash is represented as a commit w 阅读全文
摘要:
一、gcc对于new operator的说明 主要是说明:new操作在语法逻辑上看是在new之后一定要看到“类型”的,举个简单的例子:字面量100是一个常量而不是类型,所以语法 new (100)是语法错误的。 /* Parse a new-expression. new-expression: : 阅读全文
摘要:
一、C库对于fs值的分配 glibc-2.11\nptl\sysdeps\x86_64\tls.h线程创建时的逻辑,可以看到是执行的ARCH_SET_FS接口设置的/* Code to initially initialize the thread pointer. This might need 阅读全文