自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (5)
  • 收藏
  • 关注

原创 C++primer 12章 动态内存和智能指针

C++引入智能指针的目的 使用智能指针来管理动态分配的对象,当一个对象应该被释放的时候,指向他的智能指针确保自动释放它 内存分配静态内存:局部static对象、类static数据成员、定义在任何函数之外的变量 栈内存:定义在函数内的非static对象 分配在静态或者栈内存中的对象由编译器自动创建和销毁 栈对象,仅在其定义的程序块运行时候才会存在 static对象在使用之前就会被分配,程序结束的时候会被销毁 除了静态内存和栈内存,还有一个内存池,被称作自由空间或者叫堆,用来存储动态分配

2021-01-31 23:26:53 335

原创 Linux进程 excel族函数的用法

介绍使用fork创建一个进程之后,经常会在新进程中调用exec函数执行别的程序 当前进程调用exec函数之后,这个进程会被完全替代换成新的程序,即便如此仍然是同一个进程,进程ID不变 函数族 execl execlp execle execvp execvpe 头文件 <unistd.h> 功能:在进程中执行一个可执行文件,gcc -o xxx.c xxx 返回值:成功无返回值;失败返回 -1,并且从源程序的调用点继续执行#include <unistd.h>ex

2021-01-26 11:28:18 851

原创 操作系统概述 记录操作系统相关知识

操作系统现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。 上面提到的这些东西都属于硬件资源,用户不会直接和硬件进行交互,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为 操作系统 常见的操作系统主要有Windows, Linux等,这种带有图形界面的操作系 统被称为图形用户界面(GUI),而基于文本、命令行的通常称为Shell。操作系统的简化图如上图所示,最下面的是硬件,硬件包括

2021-01-24 11:20:11 742 1

原创 算法章节 递归、排序、⼆分查找

递归概念与特性 函数调⽤函数⾃身的编程⽅式叫做递归,调⽤为”递“,返回为”归“ 三个条件 1. ⼀个问题的解可以分解为多个⼦问题的解; 2. 分解之后的⼦问题,除了数据规模不同,求解思路跟原问题相同; 3. 存在递归终⽌条件; 编程技巧 1. 寻找将⼤问题分解为⼩问题求解的规律; 2. 找出递推公式和终⽌条件,将其直接翻译成代码; 3. 切记不要⼈⾁⼀层⼀层的递归; 换句话说,也就是:如果⼀个问题A可以分解为若⼲⼦问题B、C、D,我们可以假设⼦问题

2021-01-23 20:09:35 140

原创 算法章节 数组、链表、栈、队列

数组概念与特性 1,数组是线性表,用一组连续的内存空间存储⼀组具有相同类型的数据 2,最大的特性是⽀持按照下标O(1)时间复杂度内快速访问数组元素 3,⼀维数组寻址公式:a[i]_addr = base_addr + i * data_type_size 操作与复杂度 1. 随机访问时间复杂度是O(1); 2. 在数组中间任意位置插⼊数据的时间复杂度是O(n); 3. 删除数组中任意位置数据的时间复杂度是O(n) 应⽤场

2021-01-23 19:22:06 83

原创 计算机操作系统 死锁问题

概念条件是基础,在一定的原因下,产生结果

2021-01-23 16:28:19 212 2

原创 通过字符串的方式读取文件的内容

代码 std::ifstream file("1.txt"); std::stringstream data; data << file.rdbuf(); printf(data.str().c_str()); file.close();头文件 #include <cstdio>#include <cstdlib>#include <fstream>#include <sstream>

2021-01-22 21:34:18 222

原创 计算机操作系统读者和写者模型的简单介绍以及思考

读者和写者读写两组进程,共享一个文件,多个读者可以同时访问文件,多个写者不可以同时访问文件,写者和读者也不可以同时访问文件 共享读;独占写 特征:1,资源被谁占有;2,写者改变资源,读者不改变资源 分析:写者关心文件是否被占有;读者作为一个团体去读文件,第一个人关心文件是否被占有;读者团中间的人增加读者团的人数;最后一个读者需要释放文件semaphore mutex = 1;读者i(){ while(1){ p(mutex); if (read_

2021-01-22 15:52:50 276 1

原创 计算机操作系统生产者和消费者模型的简单介绍

同步互斥小口诀画图理解题目 判断题目类型 分析进程数目 填写进程模板 补充基本代码(伪代码) 补充PV代码 检查调整代码注意事项代码是一步一步写出来的,代码是反复调整写出来的 60%是生产者和消费者模型 30%是读者和写者的模型生产者和消费者例子1妈妈每次放放一个苹果到桌子上,孩子每次从桌子上取一个苹果。取苹果和放苹果不可以同时进行,而且桌子上最多只能放10个苹果,请使用pv代码实现同步互斥 箭头 代表生产的含义,数目代表生产的数量特征:1,存在一个容器,具有容量的

2021-01-22 14:26:06 1039 2

原创 操作系统 进程 学习以及思考

进程管理逻辑图将多个程序拷贝到进程中,占用内存,如图扇形区域,当酷狗进程需要资源的时候,会通过I/O子系统取用资源的过程中,会放弃对cpu的占用,cpu就会处理别的进程,因此提高了cpu的利用率(I/O低速,cpu高速) qq想要知道键盘输入的结果,他就会拜托I/O子系统去取键盘输入的结果,这个时候会放弃CPU的占用,CPU会重新分配给其他应用程序。当I/O取到键盘输入的数值,会把结果返回给QQ 死锁中对于资源的抢占不仅仅是cpu,也有键盘、鼠标、U盘等I/O资源I/O低速 CPU高速

2021-01-22 10:07:03 665 2

原创 解决VM虚拟机中ubuntu系统上不了网的问题

最简单的方式关闭虚拟机 在对应的虚拟机上右键,点击设置,找到网络适配器,点击移除,再次点击添加,将网络适配器再次添加回来,点击确定 重启虚拟机如果第一种方式解决不了问题,请使用第二种方式第二种方式打开终端, (1) 输入sudo service network-manager stop (2) sudo rm /var/lib/NetworkManager/NetworkManager.state (3) sudo service network-manager start .

2021-01-20 16:31:30 13131 30

原创 git submodule的使用

注意事项使用git log查看git上交记录使用命令切换分支 git checkoutfce965e4cf530e42a668f5b85a4a5f37528165a7 使用命令git submodule status查看当前的状态 使用命令git submodule update更新状态 使用命令进行CMAKE cmake .. -DCMAKE_BUILD_TYPE=DEBUG -DBUILD_DEVICE_TEST=ON -DENABLE_SWXA_COMMAND=OFF -DN...

2021-01-19 11:46:19 111

原创 如何查看软连接,以及相关注意事项

使用命令ls -il图片显示参考链接Linux 命令之软连接详解 Linux软连接 查看/创建/删除

2021-01-18 18:26:24 6713

原创 操作系统

OS操作系统的宏观比喻计算机是如何启动的?OS(操作系统)是如何启动的当时钟振荡器发出时钟信号,使得cpu开始运转,进行计算,因为内存RAM是一种易失存储器,需要将操作系统从磁盘拷贝到内存中来执行,这个拷贝的过程是动态的,不是一次性全部完成的。 主板上的boot小程序负责将操作系统拷贝拷贝复制到内存中来执行,点击桌面图标,先在内存中找图标程序是否存在,如果不存在,将磁盘上对应的数据文件拷贝到内存中来执行,期间会涉及到界面加载、账号输入等功能OS的目的和功能os是软件和硬件资源的管理者

2021-01-17 18:23:58 103 2

原创 linux查看系统日志

cd /var/log/ gsc@ubuntu:/var/log$ tail -f syslog

2021-01-13 21:44:33 141

原创 git初始化本地代码,不保留自己修改的内容的命令

git reset --hard origin/master git pull

2021-01-12 15:08:02 383 1

原创 进程锁 读写文件的小例子 C++代码

代码#include <unistd.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <cassert>#include <pthread.h>#include <cstdio>#include <cstdlib>#include <fstream>#include <ios

2021-01-08 18:43:49 267

原创 将读写锁放到共享内存,实现进程之间对于同一文件的读写操作

思路将读写锁和读写锁的属性以及一个用于存储共享内存的地址的int型变量三者封装成一个struct结构 将这个结构体放到共享内存中,以及将读写锁的属性设置成全局性质,然后使用这个属性初始化锁,以及将锁的地址关联到结构体的内存地址这个变量 定义一个销毁函数,用于退出进程的时候,将内存空间销毁,以及删除对应的变量 定义读写函数,读函数读取文件的内容,输出文件的内容;写函数,以追加的方式,向指定文件中写入数据 测试:使用fork创建父子两个进程,定义一个for循环,循环5次之后,退出循环并且执行销毁函数

2021-01-06 15:40:50 2492 5

原创 将读写锁放到共享内存中,实现进程之间对数据的读写访问控制

代码#include <unistd.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <assert.h>#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <fstream>#include <

2021-01-06 14:43:21 459

原创 关于锁的注意事项

文件锁Linux 提供了fcntl系统调用,可以锁定文件 但是文件锁是和进程相关联的,一个进程中的多个线程/协程对同一个文件进行的锁操作会互相覆盖掉,从而无效。 fcntl创建的锁是建议性锁,只有写入的进程和读取的进程都遵循建议才有效;对应的有强制性锁,会在每次文件操作时进行判断,但性能较差,因此 Linux/Unix 系统默认采用的是建议性锁。写入日志文件使用O_APPEND标志来打开文件,这样在每次写入时都会lseek到文件末尾进行写入,这是一个原子操作,因此不会产生同步问...

2021-01-02 22:22:49 113

原创 linux fork多进程 demo

注释使用系统调用fork()创建三个子进程; 各个子进程显示和输出一些提示信息和自己的进程标识符; 父进程显示自己的进程ID和一些提示信息,然后调用waitpid()等待多个子进程结束,并在子进程结束后显示输出提示信息表示程序结束。代码#include <iostream>#include <unistd.h>#include <cstdarg>#include <wait.h>#include "crypto_util.h"int

2021-01-02 22:13:15 207

原创 Linux strtol将十六进制转化为十进制

代码#include <iostream>#include "crypto_util.h"int get_file(const std::string file_name){ size_t get_file_id = 0; std::cout << hsm::common::get_md5_digest_hex(file_name) << std::endl; get_file_id = strtol(reinterpret_cast&

2021-01-02 21:49:15 435

原创 linux读写文件 简单版

代码//writevoid write_file(const std::string file_name){ FILE *fp = nullptr; fp = fopen(file_name.c_str(),"w+"); fprintf(fp,"This is testing for mutex\n"); fclose(fp);}//readvoid read_file(const std::string file_name){ std::ifstrea

2021-01-02 21:44:04 142 1

实现和其余平台的客户端和服务端之间进行交叉双向认证的gmssl代码

实现和其余平台的客户端和服务端之间进行交叉双向认证的gmssl代码,https://blog.csdn.net/CHYabc123456hh/article/details/127804773,https://blog.csdn.net/CHYabc123456hh/article/details/127023867,参考上述链接,分别解决tlsv1 alert decrypt error和crypto/sm2/sm2_sign.c 510: sm2_do_verifySSL3 alert write:fatal:decrypt error的错误

2023-01-06

极力推荐clion的辅助安装包

这个安装包是clion的辅助工具

2022-09-29

origin (函数绘图软件)相关配套安装软件

Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在Microsoft Windows下运行。Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计,信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基于Levernberg-Marquardt算法(LMA)的非线性最小二乘法拟合。Origin强大的数据导入功能,支持多种格式的数据,包括ASCII、Excel、NI TDM、DIADem、NetCDF、SPC等等。图形输出格式多样,例如JPEG,GIF,EPS,TIFF等。内置的查询工具可通过ADO访问数据库数据。

2022-05-12

国密算法SM2_SM3_SM4演示小程序

国密算法,即国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。 商用密码有很多,作为一览,我整理出下表,列举了常用的国际跟国产商密:

2021-12-20

defects4j-master.zip

Defects4J是一个很热门的Java自动程序修复、缺陷定位领域基准数据集。Defects4j数据集是14年由Michael D. Ernst老师及其合作者一起发布的Java运行时缺陷数据集,近年来已经被广泛应用在相关研究中。所以应该说这个数据集还是很有用的,其目前的项目主页:https://github.com/rjust/defects4j

2020-09-11

go-ipfs_v0.4.23_darwin-amd64.tar.gz

这个是用go语言写的用于Mac电脑的IPFS安装包,使用它我们可以进行文件的共享、上传、下载等一系例操作,我们用它来搭建属于自己的本地节点,并和其他节点相互链接

2020-04-10

空空如也

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

TA关注的人

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