自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录一下学习过程,方便以后查找。

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

原创 Linux命令博客目录


 Linux 目录结构Linux命令(一) pwd ,cdLinux命令(二) 复制文件 cpLinux命令(三) 移动文件 mvLinux命令(四)删除文件 rmLinux终端常用快捷键Linux命令(五)创建文件或修改文件时间 touchLinux命令(六) 查看文件 cat tac more less tailLinux命令(七)查找文件或目...

2018-10-05 16:05:00 589

原创 操作系统博客目录


 操作系统学习(一)、80x86保护模式内存管理操作系统学习(二)、分段机制操作系统学习(三)、分页机制[操作系统学习(四)、系统启动过程操作系统学习(五) 、代码段和数据段描述符操作系统学习(六) 、系统描述符类型操作系统学习(七) 、保护机制概述操作系统学习(八) 、段级保护操作系统学习(九) 、访问数据段时的特权级检查操作系统学习(十) 、...

2018-10-05 15:56:00 314

原创 关于博客说明

博客主要还是在博客园写,不定时会同步到CSDN来,主要是CSDN界面广告太多了,影响体验,同步到这里就当备份。博客园地址: http://www.cnblogs.com/ay-a/

2018-06-07 20:08:18 202

原创 Docker基础命令(快速入门)

这是一个关于docker的快速入门教程,仅包含了docker操作的基础命令。一、docker服务相关docker 服务管理使用的是systemctl命令,Linux下的服务都可以按照以下方式进行管理。查看docker服务是否启动 systemctl status docker 启动docker服务 systemctl start docker 停止docker服务 syste...

2020-07-22 19:47:00 295

原创 MQTT遗愿(last will) paho.mqtt实现

一、 MQTT遗嘱MQTT 可以设置遗嘱,客户端在连接Broker的时候将遗嘱内容(也是topic + payload形式,遗嘱也有一个主题)发送给Broker并保存在Broker中,当客户端因为非正常原因断开与Broker的连接时,Broker会将遗嘱信息发送给订阅了该主题(订阅遗嘱的主题)的客户端。客户端正常调用DISCONNECT断开连接时属于正常断开连接,Broker不会发送...

2020-07-13 22:46:00 2397

原创 使用阿里云镜像加速器

登录阿里云控制台,搜索容器镜像服务(界面上没有可以在搜索框中搜索),进入容器镜像服务管理控制台,如果需要开通就按照提示开通一下,如下图所示:在容器镜像服务控制台最底下有个镜像加速器,点进去之后有一个加速器地址,使用这个地址作为docker镜像仓库,如下图所示:编辑/etc/docker/daemon.json文件(如果没有则创建),文件中写入以下内容:{ "...

2020-07-07 13:43:00 1782

原创 Docker使用阿里云镜像加速器

登录阿里云控制台,搜索容器镜像服务(界面上没有可以在搜索框中搜索),进入容器镜像服务管理控制台,如果需要开通就按照提示开通一下,如下图所示:在容器镜像服务控制台最底下有个镜像加速器,点进去之后有一个加速器地址,使用这个地址作为docker镜像仓库,如下图所示:编辑/etc/docker/daemon.json文件(如果没有则创建),文件中写入以下内容:{ "reg...

2020-07-07 13:43:00 239

原创 汉诺塔问题(递归) c/c++实现

一、题目描述​ 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号X、Y、Z),在X杆自下而上、由大到小按顺序放置64个金盘。游戏的目标:把X杆上的金盘全部移到Z杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于X、Y、Z任一杆上。二、思路分析​ ...

2020-06-25 14:10:00 613

原创 Qt使用QJSEngine执行脚本

有时候需要进行一些计算,程序是使用c++来实现的,使用c++来进行计算不是很灵活,这时候可以使用脚本来进行计算,这样灵活,且易于扩展。写了一个简单的Demo进行验证,具体例子如下。#include <QCoreApplication>#include <QJSEngine>#include <QString>#include <QFile...

2020-06-24 21:53:00 1698 2

原创 mysql修改密码,开放远程访问权限

新安装好的数据库查看初始密码grep 'temporary password' /var/log/mysqld.log 修改密码-- mysql8.0版本ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";-- mysql8.0以下版本ALTER USER ...

2020-05-21 11:12:00 274

原创 mysql数据库表数据导出与导入

一、数据导出执行show variables like '%secure%';查询mysql默认数据导出目录,之后数据就导出到该目录下,否则报错没有权限导出。mysql> show variables like '%secure%';+--------------------------+------------------------------------------...

2020-03-22 16:27:00 440

原创 Linux防火墙Firewall-cmd 基础

一、简介​ firewall-cmd 是firewalld服务的一个命令行客户端,提供了对防火墙规则的增删查改。firewalld自身并不具备防火墙的功能。它和iptables一样需要通过内核netfilter来实现防火墙的功能,相对于iptables来说firewall-cmd使用起来更简单。二、防火墙的启动停止(centos7以上) systemctl status fir...

2019-11-17 22:42:00 331

原创 Centos 安装Nginx

一 安装编译工具及库文件yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel二 安装 PCRE (支持Rewrite 功能)# 下载地址: http://www.pcre.orgwget ftp://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz # 下载...

2019-11-10 01:19:00 190

原创 centos8 网络配置

目录 centos8已经发布了,下载了一个体验一下,新安装好的centos8默认网卡是没有启动的,安装好后需要先配置网络。在/etc/sysconfig/network-scripts目录下存放着网卡的配置文件,文件名称是ifcfg- 网卡名称。一 修改配置文件设置网络时首先打开配置文件,配置文件默认如下所示,如果使用dhcp自动获取...

2019-11-10 00:03:00 14766 1

原创 Ubuntu安装32位程序兼容包

有的交叉编译工具链是32位的,经常会遇到安装完成之后提示好不到,这时候需要安装32位兼容程序,使用以下命令安装:sudo apt-get updatesudo apt install gcc-multilibsudo apt-get install lib32z1...

2019-09-22 22:17:00 2073

原创 设置Linux 程序lib搜索目录

设置Linux 程序lib搜索目录:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib路径,例如:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mylib这样设置只是临时环境变量,关闭终端后就没了,如果想要永久生效,可以将命令添加到 /etc/profile环境变量配置文件里...

2019-09-22 22:16:00 1374

原创 mysql表的创建、查看、修改、删除

一、创建表创建表前先使用use 数据库名进入某一个数据库,创建表语句的格式如下:create table 表名称 ( 列名1 列的数据类型 [约束], 列名2 列的数据类型 [约束], 列名2 列的数据类型 [约束], ... 列名N 列的数据类型 [约束]);#注意:最后一个末尾没有逗号比如创建一个表名称为student...

2019-09-07 23:46:00 316

原创 mysql数据库创建、查看、修改、删除

一、创建数据库使用默认字符集不指定字符集时,mysql使用默字符集,从mysql8.0开始,默认字符集改为utf8mb4 ,创建数据库的命令为create database 数据库名称。#创建数据库testdb,使用默认字符集create database testdb;使用指定的字符集创建数据库,命令为create database 数据库名称 character set ...

2019-09-07 22:27:00 379

原创 修改mysql数据存储位置

停止mysql服务。在mysql安装目录下找到mysql配置文件my.ini。在my.ini中找到mysql数据存储位置配置datadir选项,比如我电脑上的配置如下:# Path to the database rootdatadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data进入到数据存储目录eg:C:/ProgramData/M...

2019-09-07 11:05:00 1658

原创 C++内联函数

一、内联函数​ 对于代码量较少,而且经常调用的函数,可以使用内联函数来减少函数调用的开销。内联函数是在编译时将函数调用处的函数体替换,类似于宏展开。​ 制定内联函数的方法是在函数的定义(不是声明处)出增加 inline关键字。在函数的声明处添加inline关键字虽然没有错,但是这种做法是无效的,编译器会忽略在函数的声明处添加inline关键字。由于内联函数代码量较小,通常的做法是将函...

2019-08-25 21:49:00 192

原创 C++类中创建线程

​ 经常会遇到需要在类中创建线程,可以使用静态成员函数,并且将类实例的指针传入线程函数的方式来实现。实现代码代码如下:/* 类头文件 CTestThread.h */#include<iostream>#include<process.h>#include<Windows.h>class TestThread{public: ...

2019-08-25 20:34:00 1648

原创 windows下搭建Redis集群

一、环境准备在windows下搭建redis集群需要先安装ruby运行环境,可以到ruby官方网站下载。新建一个文件夹,名称为redis_ cluster,即redis集群。在redis_ cluster文件夹下新建9000,9001,9002,9003,9004,9005六个文件夹。拷贝redis安装目录下的文件分别拷贝到`9000,9001,9002,9003,9004,9005六个...

2019-07-29 22:53:00 234

原创 tcpdump截帧工具使用

一、tcpdump介绍​ tcpdump是Linux下功能强大的截帧工具,相当于windows下的wireshark一下,只是操作方式是命令行的,需要熟悉Linux命令行操作。​ 常用的Linux发行版基本上都已经自带了tcpdump,如果没有可以tcpdump官网下载安装,官网只提供了源代码,下载后需要先编译。具体编译方式这里不做介绍。二、tcpdump常用参数介绍下面列出了tcpdum...

2019-07-22 23:08:00 720

原创 使用gdb+gdbserver调试应用程序

使用gdb调试应用程序目录一、gdb基本使用 1. 启动gdb 2. gdb交互式命令 一、gdb基本使用​ GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具;1. 启动gdb​ 对于C/C++程序,编译的时候需要加上 -g 参数生成调试信息。...

2019-06-09 23:17:00 592

原创 使用gdb调试应用程序

[TOC]一、gdb基本使用​ GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具;1. 启动gdb​ 对于C/C++程序,编译的时候需要加上 -g 参数生成调试信息。如:gcc -g hello.c -o hello调试可执行程序$gdb 程序名称$...

2019-06-09 23:17:00 387

原创 C++创建和使用动态链接库

C++创建和使用动态链接库 一个简单的动态链接库的生成和调用例子,太过简单,大神请绕道。一、创建动态链接库使用vs创建工程选择动态链接库。在项目中创建源文件和头文件,并在文件中添加以下代码。在头文件中添加以下代码// dlltest.h 头文件,使用动态链接库时需要包含头文件#pragma once#ifdef __DLLEX...

2019-06-04 22:56:00 650

原创 交叉编译openssl1.1.1a

交叉编译openssl1.1.1a ​ 交叉编译openssl1.1.1a的时候遇到的问题,记录一下,方便下次查找一、下载源码1.打开openssl官网,下载openssl-1.1.1.tar.gz源码包。2.执行下面的命令解压源码包: $ tar xvzf openssl-1.1.1.tar.gz二、配置openssl1.执行下面...

2019-05-19 16:12:00 2443

原创 操作系统学习(十六) 、任务管理

操作系统学习(十六) 、任务管理 一、任务​ 任务是处理器可以分配调度、执行和挂起的一个工作单元。它可用于执行程序、任务或进程、操作系统服务、中断或异常处理过程和内核代码。​ 80x86提供了一种机制,这种机制可以用来保护任务的状态、分配任务执行以及从一个任务切换到另一个任务。当工作在保护模式下,处理器所有运行都在任务中。即使是简单系统也必须定...

2019-05-18 16:14:00 1022

原创 MySql连接空闲8小时自动断开引起的问题

MySql连接空闲8小时自动断开引起的问题 一、问题描述​ 最近遇到了一个奇怪的MySql数据库问题,好几次前一天晚上历史数据还正常存储,第二天早上来了看实时数据存储还正常,历史数据不存储了。找了好久也没找到问题。后来仔细想了想,历史数据设置了变化才存储,是不是数据一直不变,就一直没有往数据库写数据,导致MySql的连接太久不用自动断开了。然后就...

2019-03-12 23:31:00 556

原创 Centos7搭建LAMP+Typecho博客

Centos7搭建LAMP+Typecho博客 一、安装Apache的httpd服务yum install httpd # 安装httpd服务systemctl start httpd # 启动httpd服务systemctl status httpd # 查看httpd服务状态,看到Active: active(ru...

2019-03-02 16:03:00 1147

原创 Sqlite,libevent,openssl,mosquito交叉编译

Sqlite,libevent,openssl,mosquito交叉编译 一、设置交叉编译环境在makefile所在目录(或源代码根目录)打开终端。在终端中设置交叉编译所需的临时环境变量(也可写到配置文件中设置为全局环境变量),其中交叉编译工具链的名称和目录需要根据实际目录设置,每次编译前执行以下命令:export CC=/home/hk...

2019-03-01 22:14:00 773

原创 Typecho博客迁移

Typecho博客迁移 在新的机器上先搭建好一个新的Typecho博客,数据库名称和原博客相同(可以省不少事)。备份原来博客的usr目录。备份mysql数据库,命令: mysqldump -uroot -p --all-databases &gt; sqlfile.sql将备份的数据库文件上传到新机器,并将备份的数据库导入到新机器的mysq...

2019-03-01 22:07:00 2510

原创 C++拷贝控制

C++拷贝控制 一、拷贝控制操作​ 当定义一个类时,显示或隐式地指定了此类型的对象在拷贝、赋值和销毁时所执行的操作,通过三个特殊的成员函数来控制这些操作,分别是拷贝构造函数,赋值运算符和析构函数。拷贝构造函数定义了当使用同类型的另一个对象初始化新对象时的操作,赋值运算符定义了将一个对象赋值给同类型的另一个对象时的操作,析构函数定义了此类型的对象销...

2019-02-27 22:45:00 177

原创 C++重载赋值运算符

C++重载赋值运算符 目录 一、为什么要重载赋值运算符 二、重载赋值运算符 一、为什么要重载赋值运算符​ 在前面的内容中讲解 拷贝构造函数调用的时机 时说明了初始化和赋值的区别:在定义的同时进行赋值叫做初始化,定义完成以后再赋值(不管在定义的时候有...

2019-02-25 23:40:00 1206

原创 C++深拷贝与浅拷贝

C++深拷贝与浅拷贝 一、浅拷贝及其不足对于基本类型数据以及简单的对象,它们的拷贝比较简单,就是直接复制内存。比如下面的代码:class Base{public: Base(): m_a(0), m_b(0){ } Base(int a, int b): m_a(a), m_b(b){ }private: int m...

2019-02-24 22:49:00 140

原创 C++拷贝构造函数的调用时机

C++拷贝构造函数的调用时机 一、拷贝构造函数调用的时机​ 当以拷贝的方式初始化对象时会调用拷贝构造函数,这里需要注意两个关键点,分别是以拷贝的方式和初始化对象1. 初始化对象初始化对象是指,为对象分配内存后第一次向内存中填充数据,这个过程会调用构造函数,对象被创建后必须立即初始化。也就是说只要创建对象就会调用构造函数。2.初始化和赋值的区...

2019-02-21 22:41:00 4487

原创 C++拷贝构造函数

C++拷贝构造函数 目录 一、对象的拷贝 二、以拷贝方式来初始化对象的例子 三、拷贝构造函数的定义及使用 四、默认拷贝构造函数 一、对象的拷贝拷贝和复制是一个意思,对计算机来说就是利用已经存在的数据创建出一份新的和原...

2019-02-20 22:48:00 239

原创 Javascript闭包

闭包严格地定义是由函数及其封闭的自由变量组成的集合体,这个定义是不是感觉晦涩那么懂,那么就先来看一个例子。var getCounter = function() { var count = 0; function addCount() { count++; return count; } return addCount;}...

2018-11-11 19:55:00 135

原创 插入排序的C、C++实现

&#13; 一、插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:...

2018-10-21 17:51:00 254

原创 选择排序的C、C++实现

&#13; 一、选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。二、程序实现1.先是根据自己的思路写了下面的程序,后来发现和网上好多例子都不一样,元素交换的次数太多,很多是无意义的交换,还是把程序放在这儿做个参考,应该算是个...

2018-10-21 17:38:00 224

空空如也

空空如也

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

TA关注的人

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