自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (5)
  • 收藏
  • 关注

原创 模拟实现~僵尸进程和孤儿进程

僵尸进程首先说一下,什么是僵尸进程呢?当进程退出并且父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵尸进程。僵尸进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。那么接下来我们就来模拟实现一个僵尸进程吧:下面看一下运行结果:僵尸进程是一种特殊的进程,这种进程光听名字就知道很可怕,那么我们就来看看它的可怕之处吧。我们知道僵尸进程的产生是因为进程退出时父

2017-04-27 16:40:51 1171 1

原创 迷宫

迷宫程序

2017-04-25 19:46:45 303

原创 C++ 大总结

继C语言之后,C++也告一个段落了,不过,只是总要串起来才能更有效的掌握,那么现在就来再回顾一下C++的内容,并且将其串起来。在学习C++之前,我们就用C语言实现了顺序表和链表,这是学习数据结构的基础,提前接触总是好的,在学习c++之后,我们又实现了了两次,分别是使用类实现、使用模板类实现。那么接下来我们就进入C++的第一个主题——类类说到类,我就不得不提结构体,当然不是C语言中的结构体,而是C++

2017-04-25 18:52:47 529

原创 模拟实现 stack和queue

线性表是最基本、最简单、也是最常用的一种数据结构。之前我已经写了几次线性表了,分别是顺序表和链表,这两个以各种形式实现了多次,那么今天我么就再来看两种线性表,两种特殊的线性表——栈和队列栈(stack)首先说一下栈的概念:栈又叫后进先出的线性表(LIFO),不明白?那就再看一下它的结构吧,栈是只在一端进行插入和删除操作的,这也是它的特殊之处,这一段就是栈顶(top)。既然栈是线性表,那么肯定有顺序栈

2017-04-20 22:56:25 1101

原创 模拟实现 list

链表前面我已经写过了,不过写的是单链表,而C++库中的list是双链表,那么,我们就来模拟实现一下双链表,这样对于库中的list也会有更加深刻的了解。那么首先我们先来了解一下双链表的结构,双链表无非就是比单链表多了一条链,单链表只有一条指向下一个节点的链,而双链表会多一条指向前一个节点的链。说白了就是多了一个指针罢了。而具体的函数功能还是那些,那么我们就来实现这个链表吧!#include<iostr

2017-04-15 23:31:29 421

原创 Linux进程描述符:task_struct结构体

进程是什么?如果有人问你,进程是什么,你该如何回答呢?正在执行的程序;程序的执行实例;能分配处理器并由处理器执行的实体。进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。那么进程和程序的区别是什么呢?1、进程在内存上,程序在硬盘上 2、进程比程序多了很

2017-04-14 22:50:13 812

原创 shared_ptr:定制删除器 和 循环引用

前面我们介绍智能指针的时候,说了两个智能指针分别是:auto_ptr和scoped_ptr,auto_ptr有问题,为此,scoped_ptr的出现解决了这个问题,scoped_ptr太霸道,不允许别人和他共用一块内存空间,所以,我们还得想办法解决这个问题。回想我们以前看过内容,当提到共用一块内存空间的时候,我们会想到什么?当然是深拷贝和浅拷贝了,最后我们是不是有给出了一个写时拷贝,就是通过引用计数

2017-04-13 21:26:08 972

原创 智能指针:auto_ptr 和 scoped_ptr

很多人都说:C++比Java难,难就难在指针,指针很难学,但是不可否认,通过指针,我们确实将很多问题解决了,不过为什么要引入指那个指针呢?首先这里先声明一点:智能指针并不是指针,它的本质是个类,不过,它的功能是自动管理指针所指向的动态内存和释放工作,所以叫他智能指针。那么为什么要引入智能指针呢?先来看一个例子:int FunTest(){ int *p = new int; if

2017-04-08 20:02:38 2011 1

原创 Linux下的小程序:进度条

当我们再上传或者下载什么东西的时候,通常会显示一个界面,这个界面显示的是你加载的多少,那么在Linux下有没有进度条呢?今天就来实现一下吧!首先应该出现的就是一个进度,另外还有一个是百分比。百分比还好说,关键是进度,这是一个逐渐增加的形式,而且还是一直显示一个界面。逐渐增加还好说一点,我们只需要写一个循环就可以了,关键是一直显示的是最新的显示信息,这个就用到我们以前学的一个函数了,fflush(),

2017-04-05 20:05:33 560

原创 gdb安装、vim配置

gdb的安装:昨天使用vim的时候遇到了一些问题,分享一下:首先说一下我使用gdb调试的时候出现的问题吧!在使用vim写程序的时候避免不了的就是调试,在Linux下,调试使用的是gdb。不过,当我输入命令的时候,出现了报错,就是gdb这个命令不存在,多试了几次发现,命令写的没错,那么重点来了。我发现,我没有安装gdb,这就尴尬了,然后就是百度了,发现这条命令会让你自动安装,不过前提是你的虚拟机得连上

2017-04-04 17:28:29 866

原创 Linux中的find指令以及粘滞位 小结

在Windows中我们怎么搜索一个文件,如果知道位置的话,我们通常会直接用鼠标点击它的文件路径,然后一步步找到。那么在Linux中怎么找到一个文件呢?find命令会帮你找到,Linux中find命令在目录结构中搜索文件,并执行指定的操作。Linux为find命令提供了相当多的茶渣条件,所以,find的选型很多,需要花费大量的时间来了解这个命令。同时,它的功能很强大,即使系统中含有网络系统文件(NFS

2017-04-04 16:42:29 854

原创 C/C++ 异常处理

现在写代码的时候就都会习惯的写下下面的代码:int main(){ return 0;}这个也是可以编译通过的,我们知道:main函数是入口函数,那么return 0; 就是结束语句,当程序执行到return 0; 的时候也表示这个程序“寿终正寝”了,但是很多时候,程序是不能“寿终正寝”的,也就是我们所说的异常了。现在我们就来看一下C语言和C++中异常是怎么处理的:C语言的异常处理:1、

2017-04-03 13:11:36 569

原创 C++ 实现 atoi

atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。#include<iostream>using namespace std;//模拟实现 atoiint atoi_my(const char *str){

2017-04-01 23:02:15 3352 1

空空如也

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

TA关注的人

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