- 博客(21)
- 收藏
- 关注
原创 Linux进程间通信
进程间通信初识进程间通信什么是进程间通信进程间通信简称IPC(Interprocess communication),进程间通信就是在不同进程之间传播或交换信息。进程间通信的目的数据传输: 一个进程需要将它的数据发送给另一个进程。资源共享: 多个进程之间共享同样的资源。通知事件: 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件,比如进程终止时需要通知其父进程。进程控制: 有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有
2022-04-19 18:13:12
812
原创 Linux系统进阶-基础IO
Linux系统进阶-基础IO文章目录Linux系统进阶-基础IOC语言中的文件接口对文件进行写入对文件进行读取什么是当前路径默认打开的三个流stdout & stderr系统文件IO文件描述符fd文件描述符的分配规则重定向输出重定向追加重定向输入重定向dup2FILEFILE当中的文件描述符FILE的缓冲区操作系统有缓冲区吗理解文件系统磁盘磁盘的寻找方案磁盘分区与格式化EXT2文件系统的存储方案什么是inode如何理解创建空文件如何理解对文件写入信息如何理解删除一个文件为什么拷贝文件的时候很慢,而
2022-04-16 09:29:30
617
原创 任务管理和守护进程
任务管理和守护进程任务管理什么是终端 在Unix系统中,用户通过终端登陆系统后得到一个Shell进程,这个终端称为Shell进程的控制终端(Controlling Terminal),进程中,控制终端是保存在PCB中的信息,因此有Shell进程启动的其他进程的控制终端也是这个终端。 默认情况下(没有重定向),每个进程的stdin、stdout、stderror都指向控制终端,进程从stdin读也就是读用户的键盘输入,进程往stdout、stderror输出也就是输出到显示器上。什么是进
2022-04-12 17:44:51
890
原创 面向对象三大特性之多态
typora-copy-images-to: ./多态什么是多态?多态就是函数调用的多种形态,使用多态能够使得不同对象去完成同一件事,产生不同的动作和结果。例如,在现实生活中普通人买票是全价,学生买票是半价,而军人允许有先买票。不同身份的人去买票,产生的行为是不同的,这就是都多态。多态的分类在C++中,多态的实现和**联编(也称绑定)**这一概念有关。一个源程序经过编译、链接,成为可执行文件的过程是把可执行代码联编(或称装配)在一起的过程。其中在运行之前就完成的联编成为静态联编(前期联编).
2022-04-12 09:37:54
1658
原创 C++三大特性之一----继承
C++三大特性之一----继承文章目录C++三大特性之一----继承什么是继承继承的概念继承的定义继承方式与访问限定符继承基类成员访问方式的变化默认的继承方式基类和派生类的对象复制转换继承中的作用域派生类的默认成员函数继承与静态成员继承的方式虚拟菱形继承虚拟菱形继承原理对继承的理解继承和组合什么是继承继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的重要的手段,它允许程序员在保持原有类(基类,也称为父类)特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类(子类)。
2022-03-15 13:40:35
895
原创 Linux系统进阶-进程控制
Linux系统进阶-进程控制文章目录Linux系统进阶-进程控制1. 进程创建fork()函数初识fork()函数的返回值写时拷贝fork()的常规用法fork()调用失败的原因2. 进程终止进程退出场景进程退出码进程正常退出returnexit()函数_exit()函数return、exit和_exit之间的区别与联系3. 进程等待什么是进程等待进程等待的必要性获取子进程的status进程等待的方法wait方法waitpid方法多进程创建以及等待的代码模型基于非阻塞接口的轮询等待方案4. 进程替换替换原
2021-12-21 19:08:26
1183
原创 Linux系统学习-初识进程
Linux系统学习-初识进程文章目录Linux系统学习-初识进程1. 认识冯诺依曼体系结构2 操作系统(Operating System)什么是OS?为什么要有OS?OS的作用OS的定位计算机层状结构3 进程什么是进程PCB什么是PCB?`task_struct`的内容标识符上下文数据通过系统调用创建进程-fork初识创建子进程`fork()`函数的返回值创建多个子进程4 进程状态状态僵尸进程(zombie)孤儿进程5 进程的优先级优先级 vs 权限修改已存在进程的nice7 环境变量什么是环境变量常见的
2021-12-14 10:34:14
2324
原创 C++再探模板
C++再探模板这次我们来再探C++中的模板。1. 非类型模板参数相信大家都有过这样的问题,我想创建一个对象栈,又想可以随意改变栈的大小,只能用宏来定义,可这样的栈的大小已经固定了,每次我想改变它的大小只能去改变宏,可是这样带来的后果是我想创建两个大小不一样的对象(两个栈)。这该如何是好?#include <iostream>using namespace std;#define N 10000;template<class T>class Stack{priva
2021-11-30 20:51:33
153
原创 类与对象 ---C++三大特性之封装
类与对象文章目录类与对象1. 面向面向过程和面向对象初步认识2. 类的引用3. 类的定义4. 类的访问限定符及封装4.1 访问限定符4.2 封装5. 类的作用域6. 类的实例化7. 类对象模型7.1 计算类对象的大小7.2 猜猜类的存储8 隐含的this指针8.1 引出this指针8.2 this指针的特性9. 类的6个默认成员函数10. 构造函数11. 析构函数12. 拷贝构造函数13 赋值重载运算符13. 1 运算符重载13.2 赋值运算符重载14. `const`成员14.1 `const`修饰的成
2021-11-11 20:06:54
1252
原创 C++泛型编程的基础---模板
模板文章目录模板1. 泛型编程2. 函数模板2.1 什么是函数模板2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板函数的匹配原则3 类模板3.1 类模板的定义格式3.2 类模板的实例化1. 泛型编程如何实现一个通用的交换函数。void Swap(int& left, int& right){ int temp = left; left = right; right = temp;}void Swap(double& left,
2021-11-11 19:57:02
838
原创 CC++内存管理
C/C++内存管理C/C++内存分布在C和C++中,内存大概分为这几个区。栈区:存放非静态局部变量,函数参数,函数返回值等,其优先使用高地址,并逐渐往下.堆区: 用于程序运行时进行动态内存分配(一般使用malloc),其优先使用低地址,逐渐往上.内存映射段:高效的I/O\映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享内存,做进程间通信.由于博主还未更新到操作系统,这里不做过多介绍.数据段:存储全局数据和静态变量.代码段:存储全局数据和静态变量.[外链图片转存中…(im
2021-11-11 19:35:03
461
原创 计算机组成原理1
计算机组成原理来源:中国大学MOOC国科大第一章 计算机抽象与技术1.1 计算机系统概述1.2 程序之下的表象指令系统是软硬件的交界面不同的用户在不同层次,看到的计算机是不一样的1.3 打开计算机的机箱分层抽象越是深入,展现的细节和信息越多将底层的细节隐藏起来,就可以在高层次的采用简洁的模型1.4 计算机性能评价不同的性能评价标准会导致不同的结论!!!用户的CPU时间小于系统响应时间。评价CPU性能的最重要指标-------
2021-10-09 11:41:12
119
原创 计算机组成原理2
计算机组成原理22.1 指令系统概述现代处理器大多采用RISC体系架构Inter x86 为兼容需要,保留了 CISC 风格,同时借鉴了RISC思想2.2 指令格式[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HyEhsmjG-1633750653123)(https://i.loli.net/2021/10/09/EV1H8xvPGiWf6da.png)]2.3 寻址方式[外链图片转存失败,源站可能
2021-10-09 11:40:08
158
原创 内存函数的简介
内存操作函数memcpyvoid * memcpy ( void * destination, const void * source, size_t num )函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。这个函数在遇到 ‘\0’ 的时候并不会停下来。如果source和destination有任何的重叠,复制的结果都是未定义的。/* memcpy example */ #include <stdio.h> #i
2021-10-05 17:44:28
122
原创 枚举即有限的取值集合
枚举枚举顾名思义就是一一列举。把可能的取值一一列举比如我们现实生活中:一周的星期一到星期日是有限的7天,可以一一列举。性别有:男、女、保密,也可以一一列举。月份有12个月,也可以一一列举颜色也可以一一列举。这里就可以使用枚举了。有限的取值集合。枚举类型的定义enum Day//星期{ Mon, Tues, Wed, Thur, Fri, Sat, Sun};enum Sex//性别{ MALE, FEMALE,
2021-10-05 17:42:35
541
原创 数据存储类型
数据存储类型数据类型介绍基本的内置类型char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数//C语言有没有字符串类型?以及他们所占存储空间的大小。 类型的意义:使用这个类型开辟内存空间的大小(大小决定了使用范围)。如何看待内存空间的视角。类型的基本归类
2021-10-05 17:38:50
418
原创 操作符详解
操作符详解操作符算术操作符+ - * / %除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。% 操作符的两个操作数必须为整数。返回的是整除之后的余数。#include<stdio.h>int main(){ //2. int a = 5 / 6;//? //0 int b = 5.0 / 6.0;?? //o.6
2021-10-05 17:37:10
159
原创 git实战技巧
Gitee码云保姆级教程你是否该有过因国内环境而不能将你的代码上传到Github?这篇blog我将会为你介绍一个同样强大的国产代码托管服务。文章目录`Gitee`码云保姆级教程前言Git工具`gitee`的使用生成`SSH`公钥配置`SSH`公钥关联本地工程到远程仓库创建文件执行`git`指令,提交文件删除仓库常见`Git`指令删除仓库常见`Git`指令前言首先什么是码云?关于Gitee:gitee(中文名:码云 ,原名 Git@OSC)是开源中国推出的基于git的代码托管服务。国内访
2021-09-24 10:36:08
154
原创 结构体进阶
结构体进阶结构体声明定义:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量结构的声明struct tag//标签名{ member-list; //成员列表,可以是不同类型 }variable-list;//变量列表例如描述一个学生:struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢例如描述
2021-07-15 16:10:59
174
原创 字符串函数
字符串函数前言C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数函数介绍strlen函数基础函数介绍:strlensize_t strlen ( const char * str );头文件:string.h函数名:strlen函数参数:str,参数类型是const char* ,即需要进行求字符串长度的起始地址函数返回类型: size_t,size_t是unsig
2021-07-15 16:02:16
766
原创 浮点数在内存中的存储
浮点数在内存中的存储根据国际标准IEEE(电气与电子工程协会)751,任意一个二进制浮点数V可以表示成下面的形式:(-1)^ S * M * 2 ^ E(-1)^ S表示符号位,当S = 0,V为正数,当S = 1,V为负数M表示有效数字位数,大于等于1,小于22 ^ E 表示指数例:浮点数 5.5 ----------十进制转换:101.11.011 * 2 * 2(-1)^ 0 * 1.011 * 2 * 2S = 0,M = 1.011,E = 2将二进制数
2021-07-15 15:49:34
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人