自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (1)
  • 收藏
  • 关注

原创 解析linux中的文件描述符

一、文件描述符简介 文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。习惯上,标准输入的文件描述符是 0,标准输出是 1,标准错误是 2。 画图表示 二、如何创建文件描述符 进程获取文件描述符最常

2016-08-27 17:37:44 839 1

原创 linux缓冲区解析

1.什么是缓冲区缓冲区是内存的一部分空间,用缓冲输入输出的数据。缓冲区又分为输入缓冲区和输出缓冲区。缓冲区又被称为缓存.2.缓冲区存在的意义主要的意义就是为了提高cpu的效率。 输入端。假如没有缓冲区,我们要从磁盘中读取数据,有几个字符,CPU就要读写几次,CPU是高速率的,而读取是低速率的,这样做会降低CPU的效率。相反如果将数据都存在缓冲区里面,等要读取的时候就可以一次性读取多数的数据。大大地

2016-08-27 15:37:23 5315 1

转载 文件的粘滞位

文件的粘滞位(sticky)位是作什么用的? 普通文件的sticky位会被linux内核忽略, 目录的sticky位表示这个目录里的文件只能被owner和root删除 粘着位(Sticky bit) 如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。 粘着位出现执行许可的位置上,用t表示,设置了该位后,其它用户就不可以删除不属于他的

2016-08-26 20:56:25 573

原创 实际用户和有效用户

每个进程都有非负的整型表示唯一的进程ID。 下面三个是常见的ID: 0 是交换进程,属于系统进程,是内核的一部分,不执行磁盘上的程序,是调度进程 1 是用户进程,永远不会停止,会启动系统,读取系统初始化文件 2 是精灵进程,属于系统进程,虚存系统的请页操作除了进程ID,每个进程还有其他的符号: pid:进程ID ppid:父进程ID uid:实际用户ID(在root下就是0,普通用户下

2016-08-26 20:08:12 3779

原创 linux进程内存映象解析

一、程序如何转化为进程程序转化为进程一般有两个步骤: 1、内核会将程序从磁盘读入内存,为程序分配内存空间 2、内核会为进程保存PID以及相应的状态信息(保存在task_struct中),将进程放在运行队列中等待执行。 程序转变为进程以后就可以被操作系统调度程序执行了。二、内存映象内存映象指的是内核如何在内存中存放可执行程序。 在程序转化为进程的过程中,操作系统可直接将可执行程序复制到内存中,

2016-08-25 20:16:13 4584

原创 文件的时间参数和find命令解析

一、时间参数stat命令可以获取文件的三个时间,如下图所示,他们分别是Access,Modify和Change,那么他们分别代表什么意思呢? access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间 modify time:表示我们最后一次修改文件的时间 change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等。而且这三个时间有如下的特点:

2016-08-23 22:36:46 962

原创 栈面试题总结

1.求栈上的最小值具体要求:在O(1)的时间复杂度内求出栈上的最小值,并且不受出栈入栈的影响。 思路:借助一个辅助栈,原栈在有数据入栈的时候,辅助栈也有数据入栈。辅助栈入栈的数据为当前的最小值。 实现:template<typename T>class StackMin{public: void Push(const T&data); void Pop(); T M

2016-08-23 11:13:55 308

原创 数据结构之红黑树解析

红黑树1.定义:红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。2.特性:(1)每个节点,不是红色就是黑色的(2)根节点必须为黑色(3)不能出现连续的红节点(4)对每个节点,从该节点到所有叶节点上的黑色节点的和相当

2016-08-20 16:38:08 380

原创 AVL树解析

首先介绍一下AVL旋转树:AVL树也是一棵二叉搜索树,AVL树存在的原因是避免二叉搜索树因为左右子树高度相差过大使得查找花费过多时间。下面就来介绍一下AVL树的实现,这里重点介绍AVL中的Insert接口,因为这个结构就包含了AVL的所有精华。1、插入节点 要插入一个节点就必须先找到节点要插入的位置,因为AVL树同时也是一棵平衡树,所以用循环或递归很容易就可以找到。插入时要注意是插

2016-08-18 23:19:57 426

原创 模拟实现智能指针

众所周知,智能指针是用来管理指针的,为了避免开辟了空间而忘记释放的情况。 下面我们分别来模拟实现以下boost库中三种智能指针的实现,他们分别是auto ptr,scoped ptr,shared ptr。一.auto ptr旧版本的实现:template <typename T>class Auto_ptr{public: Auto_ptr(T*ptr = NULL) :_pt

2016-08-16 23:58:12 421

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除