自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MBuger的博客

与其临渊羡鱼,不如退而结网。

  • 博客(6)
  • 收藏
  • 关注

原创 Linux进程间的通信方式之管道

简介管道是进程间通信(IPC)的一种重要方式,在 Linux 中,管道的实现并没有使用专门的数据结构,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两个 file 结构指向同一个临时的 VFS 索引节点,而这个 VFS 索引节点又指向一个物理页面而实现的,如图。它由进程之间的关系可以分为匿名管道和命名管道。匿名管道即两进程之间存在血缘关系时使用的管道,命名管道即两进程之间不存在

2017-05-29 13:35:55 600

原创 文件描述符和文件描述符表

文件描述符与文件描述符表前面我们介绍过Linux中有一个结构体task_sturct专门用来控制进程叫做进程描述符,在它的里面存放了各种关于进程的信息,其中有一个指针,源码中给出的定义为:struct file_struct *file ,它指向一个file_struct结构体,即文件描述符表,每个进程都有一个自己的文件描述符表。我们所说的文件描述符(fd)就被写在这个file_struct之中,

2017-05-16 21:26:52 3934

原创 实现带最小值操作的栈

简介栈的结构特性是后入先出,一般栈给出了基本操作接口有: empty:栈空返回真; pop:移除栈顶元素; push:在栈顶增加元素; size:返回栈中元素数目; top:返回栈顶元素。 今天我们要实现一个新的栈,在这些普通栈的操作上增加一个新的操作min,那就是返回栈中的最小元素。设计思路在新设计的栈中使用两个库中给出的栈,一个按照正常的压栈顺序向栈中存入数据,另一个栈只在存入的数据

2017-05-14 15:52:56 670

原创 虚函数与纯虚函数

简介虚函数在C++中虚函数是实现多态的一种机制,核心理念就是通过基类访问派生类定义的函数。 最常见的例子就是如下class A { public: virtual void foo() { cout << "A::foo() is called" << endl; } }; class B :public A { public: virtual vo

2017-05-09 20:14:22 326

原创 僵尸进程与孤儿进程

上篇博客我们讲到进程在系统中的状态,在Linux系统编程中,进程经常会出现僵死状态(僵尸进程)和孤儿进程的情况。这篇博客就将详细的介绍这两种进程。孤儿进程孤儿进程是指在进程还未退出之前它的父进程就已经先退出了,简单来说就是一个没有父进程的子进程就是孤儿进程。既然所有的进程都必须在退出之后被父进程的wait()或waitpid()以释放其遗留在系统中的一些资源,那么孤儿进程的这些东西又谁来处理呢?这个

2017-05-04 18:00:13 656

原创 C++11特性:智能指针介绍

简介在C++98标准里面就已经有了智能指针的概念,它是把指针封装成为了一个类。这层封装让指针像是一个对象,这个对象的行为像一个指针。它的作用就是为了实现对指针的生命周期的管理。例如下面代码DataType *T_ptr = new DataType(); ... ... delete T_ptr; T_ptr = NULL;这段代码的后两句是用来结束掉指针T_ptr的声明周期,但是如果代码量大了之后

2017-05-02 22:34:13 526

空空如也

空空如也

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

TA关注的人

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