摘要: struct dx_rootHtree的内部节点:struct dx_nodeHtree树根和节点中都存在的Hash map:struct dx_entry1.20扩展属性EA扩展属性(xattrs)通常存储在磁盘上的一个单独的数据块中,通过inode.i_file_acl*引用。扩展属性的第一应用... 阅读全文
posted @ 2014-05-19 21:40 Jessica程序猿 阅读(3206) 评论(0) 推荐(0) 编辑
摘要: 接着上一篇博文,继续分析Ext4磁盘布局中的元数据。1.7超级块超级块记录整个文件系统的大量信息,如数据块个数、inode个数、支持的特性、管理信息,等待。如果设置sparse_super特性标志,超级块和块组描述符表的冗余备份仅存放在编号为0或3、5、7的幂次方的块组中。如果未设置sparse_s... 阅读全文
posted @ 2014-05-19 21:39 Jessica程序猿 阅读(3662) 评论(0) 推荐(0) 编辑
摘要: 本文描述Ext4文件系统磁盘布局和元数据的一些分析,同样适用于Ext3和Ext2文件系统,除了它们不支持的Ext4的特性外。整个分析分两篇博文,分别概述布局和详细介绍各个布局的数据结构及组织寻址方式等。感兴趣的看官敬请留意和指导!1. Ext4文件系统布局综述一个Ext4文件系统被分成一系列块组。为... 阅读全文
posted @ 2014-05-19 21:37 Jessica程序猿 阅读(2444) 评论(0) 推荐(0) 编辑
摘要: 所有容器提供的都是“value语意”而非“reference语意”。容器内进行元素的安插操作时,内部实施的是拷贝操作,置于容器内。因此STL容器 的每一个元素都必须能够拷贝。---> 侯捷、孟岩译 p144页原文以vector为例,往Vector中(实际上所有STL容器都是这样)放元素,Vector... 阅读全文
posted @ 2014-05-18 23:29 Jessica程序猿 阅读(2084) 评论(1) 推荐(0) 编辑
摘要: 在C语言中,我们常常会提起左值(lvalue)、右值(rvalue)这样的称呼。而在编译程序时,编译器有时也会在报出的错误信息中会包含 左值、右值的说法。不过左值、右值通常不是通过一个严谨的定义而为人所知的,大多数时候左右值的定义与其判别方法是一体的。一个最为典型的判别方法就是, 在赋值表达式中,出... 阅读全文
posted @ 2014-05-18 23:00 Jessica程序猿 阅读(1156) 评论(0) 推荐(0) 编辑
摘要: C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。 对左值和右值的一个最常见的误解是:等号左边的就是左值,等号右边的就是右值。左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在... 阅读全文
posted @ 2014-05-18 22:48 Jessica程序猿 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 我也不知道为什么作者给这个条款起这样的名字,因为这样看上去重点是在“不抛出异常”,但事实上作者只是在全文最后一段说了一下不抛异常的原因,大部分段落是在介绍怎样写一个节省资源的swap函数。你可以试一下,只要包含了头文件iostream,就可以使用swap函数,比如:1 #include 2 3 in... 阅读全文
posted @ 2014-05-18 17:21 Jessica程序猿 阅读(425) 评论(0) 推荐(0) 编辑
摘要: std::swap()是个很有用的函数,它可以用来交换两个变量的值,包括用户自定义的类型,只要类型支持copying操作,尤其是在STL中使用的很多,例如:int main(int argc, _TCHAR* argv[]) { int a[10] = {1,2,3,4,5,6,7,8,... 阅读全文
posted @ 2014-05-18 14:47 Jessica程序猿 阅读(657) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;class Obj{public: Obj(void){cout obj(10); vector obj2(10,0); return 0;}结果如下://执行了构造函数2次,20次复制构造函数,析构函数22次//我想提出的... 阅读全文
posted @ 2014-05-17 19:22 Jessica程序猿 阅读(8577) 评论(0) 推荐(0) 编辑
摘要: 构造函数、析构函数、赋值函数是每个类最基本的的函数。每个类只有一个析构函数和一个赋值函数。但是有很多构造函数(一个为复制构造函数,其他为普通构造函数。对于一个类A,如果不编写上述四个函数,c++编译器将自动为A产生四个默认的函数,即:A(void) //默认无参数构造函数A(const A &a) ... 阅读全文
posted @ 2014-05-17 17:56 Jessica程序猿 阅读(341) 评论(0) 推荐(0) 编辑