自定义博客皮肤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)
  • 收藏
  • 关注

转载 C++ 如何一次在堆上申请4G的内存?如何设计一个类只能在堆或者栈上创建对象?

1.如何一次在堆上申请4G的内存?因为32位的环境下虚拟地址空间的大小只有4g,而光内核空间就需要1g,所以不可能申请得到,只有在64位的环境下才可以实现,只需要把执行环境改为64x即可#include <iostream>using namespace std;int main(){ void* p = new char[0xfffffffful]; cout <...

2020-04-28 17:42:50 1303

原创 C++ 动态内存管理:c/c++的动态内存管理,new/delete,operator new/delete,placement-new, 内存泄漏

c/c++的动态内存管理new/deleteopeartor new/deleteplacement-new内存泄漏类的const成员 c/c++的动态内存管理在开始之前首先要了解c和c++的内存分布,我简单的画了一个图栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口...

2020-04-28 16:49:24 1354

原创 C++ 类和对象(三):构造函数补充、匿名对象、友元、内部类、类的static与const

构造函数补充匿名对象友元内部类类的static与const 构造函数补充列表初始化讲列表初始化之前,要先讨论一下构造函数里面的语句到底是不是初始化例子还是上次的日期类class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = d...

2020-04-25 14:27:20 1004 1

原创 C语言实现miniShell

Shell就是命令行的解释器,因为在Linux下,是没有图形界面的,我们需要通过命令行输入我们的命令,然后Shell将命令解析后反馈给Linux内核,内核运算处理后再讲结果通过Shell解析给用户。我们输入的ls其实就是字符串,shell通过解析这个字符串,通过程序替换的方法将字符串ls替换为系统函数ls,完成操作,所以我们需要做的有一下几步。获取输入的命令解析输入的命令创建子进程,通...

2020-04-22 18:02:11 1776 3

原创 C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载

构造函数析构函数拷贝构造函数运算符重载 class Date{};可以看到,上面那个类没有任何成员,是一个空类,但是它真的什么都没有吗?其实一个类在我们不写的情况下,都会生成6个默认的成员函数分别是构造函数,析构函数,拷贝构造函数,赋值运算符重载,取地址运算符重载,对const对象取地址运算符的重载 构造函数构造函数是特殊的成员函数,它的主要功能就是初始化对象。和我...

2020-04-19 22:57:02 1081

原创 C++ 类和对象(一):类的概念、类的访问控制和封装、类对象模型、this指针

类的概念类的访问控制和封装类的对象模型this指针 类的概念在C++中,类可以说是最重要的东西,因为C++一开始的定位就是c with class,也正是因为引入了类,才让c++从c的面向过程思想转变为面向对象的思想,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。C++有两种能够创建类的方法struct第一种是struct,也就是从C继承而来的,在C语言中...

2020-04-17 21:07:30 629 1

原创 Linux 进程信号:信号的概念、生命周期、产生流程、阻塞

信号的概念信号的生命周期信号的阻塞 信号的概念信号信号是一个软中断。操作系统通过信号通知某个进程发生了某件事件,然后中断这个进程当前操作,让它优先去处理这个事件。我们在linux下常用的kill命令就是通过向进程发送一个信号来使进程中断,我们可以通过kill -l来查看信号的种类信号的种类可以看到32和33号信号是不存在的,并且1-31是有具体名称的,而34号及之后的都是...

2020-04-15 17:19:22 920

原创 Linux 进程间通信:管道、共享内存、消息队列、信号量

进程间通信管道共享内存消息队列信号量 进程间通信https://blog.csdn.net/qq_35423154/article/details/105294963在之前的一篇博客中讲过,# <h1 id="2"> 管道</h1># <h1 id="3"> 共享内存</h1># <h1 id="4"&gt...

2020-04-13 16:56:10 2667 1

原创 C++ 基础 : 函数重载、引用、内联函数、auto、范围for循环

函数重载引用内联函数auto范围for循环 函数重载C++中引入了一个新特性,函数重载。在同一个作用域下,对于相同的函数名,函数的参数不同,不同类型的参数顺序不同,参数的个数不同,都可以形成函数的重载(参数名不同,返回值不同不形成重载)函数的重载主要用于处理功能相同,类型不同的数据。例如int test(int i, int j){ cout << "t...

2020-04-10 22:52:54 1077 2

原创 Linux 基础I/O :文件描述符,重定向,文件系统,软链接和硬链接,动态库和静态库

文件描述符重定向文件系统软链接和硬链接动态库和静态库 文件描述符上面两个接口分别是c语言的fread接口和linux的read接口,当我们在使用的时,可能会有疑问,为什么linux的io接口能只通过一个整型的fd来操控文件和io?这个fd又是什么?文件描述符fd大家应该听说过,linux下一切皆文件task_struct也就是pcb在Linux下的实现,然后其中的*f...

2020-04-08 14:10:44 1197

原创 Linux 进程控制 :进程创建,进程终止,进程等待,程序替换

进程创建 进程终止 进程等待 程序替换 进程创建fork函数创建一个子进程,父子进程代码共享,数据独有#include <unistd.h>pid_t fork(void);返回值:自进程中返回0,父进程返回子进程id.出错返回1。当调用fork函数时,通过使用写时拷贝技术来拷贝父进程的信息。写时拷贝技术:子进程通过复制父进程的pcb,使得复制进程指向...

2020-04-06 16:24:12 604

原创 Linux 进程(二) 进程地址空间

上一节我们提到过父子进程的一个概念:父子进程代码共享,数据各自开辟空间。因为子进程从父进程的PCB中拷贝了数据,所以它的代码、数据以及运行的位置,都与父进程一模一样。但是为什么这个代码是无法修改的?为什么又需要再各自开辟空间呢?Linux是如何实现权限控制以及空间映射的呢?我们用这段代码进行试验#include<stdio.h>#include<unistd.h>...

2020-04-03 17:09:26 719

原创 Linux 进程(一) 进程概念和进程状态(僵尸进程、孤儿进程、守护进程)

进程的概念进程状态 进程的概念程序:一系列有序的指令集合(就是我们写的代码)进程:进程就是程序的一次执行,是系统进行资源分配和调度的独立单位。程序是一个没有生命的实体,只有操作系统执行它时,它才能成为一个活动的实体,也就是进程。同时,操作系统通过进程控制块(PCB),来对程序进行调度使用操作系统如何控制和调度程序按照冯诺依曼体系结构,所有的数据想要被CPU进行处理,第一步就......

2020-04-01 18:00:51 1071 4

空空如也

空空如也

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

TA关注的人

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