自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 分配一段只读存储空间到FLASH

分配一段只读存储空间到FLASH

2023-01-11 17:36:33 146

原创 go canal 监听mysql数据库

自定义结构体的json序列化

2022-07-05 17:59:01 1217 2

原创 自定义结构体的json序列化

自定义结构体的json序列化

2022-07-05 15:53:03 209

原创 【无标题】Vscode 配置golang dlv调试

下载安装好dlv,配置好golang项目的mod文件,点击运行->添加配置->Go:launch package生成launch文件后既可以启动调试了!

2022-07-05 15:09:52 956

原创 golang casbin_rbac 代码示例

RBACRBAC在用户和权限之间引入了“角色(Role)”的概念用户关联角色,角色关联权限每个用户关联一个或多个角色,每个角色关联一个或多个权限,从而可以实现了非常灵活的权限管理。角色可以根据实际业务需求灵活创建,这样就省去了每新增一个用户就要关联一遍所有权限的麻烦casbin相关方法// 初始化func (casbinService *CasbinService) Casbin() *casbin.SyncedEnforcer { once.Do(func() { a, _

2022-05-17 16:24:38 915

原创 微信订阅消息通知

小程序订阅消息https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html步骤小程序配置号模板前端订阅了消息后端获取到access_token后端调send接口发送消息接口POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN请求参数

2022-05-14 13:51:29 1085

原创 golang的json标签

golang的json标签json:"-" // 表示不进行序列化,忽略json:"name,omitempty"//加上omitempty,可以在序列化的时候忽略0值或者空值若要在被嵌套结构体整体为空时使其在序列化结果中被忽略,不仅要在被嵌套结构体字段后加上json:“fileName,omitempty”,还要将其改为结构体指针json:",inline"通常作用于内嵌的结构体类型type,有些时候,我们在序列化或者反序列化的时候,可能结构体类型和需要的类型不一致,这个时候可以指定,支持str

2022-05-12 16:55:29 1588

原创 tmux命令

tmux new -s tmux lstmux detachtmux attach -t tmux kill-session -t tmux switch -t Ctrl+b d:分离当前会话。Ctrl+b s:列出所有会话。Ctrl+b $:重命名当前会话。

2022-05-12 14:07:10 98

原创 mysql主从复制docker部署

拉取mysql8.0镜像启动容器主服务器show master status;CREATE USER 'slave'@'%' IDENTIFIED BY '000000';ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '000000';GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';FLUSH PRIVILEGES;从服务器s

2022-05-12 14:00:16 218

原创 Elastic的使用

Elastic的使用创建文档创建一个叫做 twitter 的索引(index),并插入一个文档(document) ,文档id为1PUT twitter/_doc/1{“user”: “GB”,“uid”: 1,“city”: “Beijing”,“province”: “Beijing”,“country”: “China”}结果{“_index” : “twitter”, //索引“type” : “doc”, //类型是文档“_id” : “1”,//“_version

2022-05-12 13:57:28 1043

原创 go语言swag注解示例

go语言swag注解示例paramParameters that separated by spaces. param name,param type,data type,is mandatory?,comment attribute(optional)securitySecurity to each API operation.successSuccess response that separated by spaces. return code or default,{

2022-05-12 13:55:55 1197

原创 postman脚本

获取response数据var jsonData = pm.response.json();pm.globals.set("token", jsonData.data.token);请求头// 添加新 headerpm.request.headers.add({ key: 'token', value: pm.globals.get("token")});// 添加或修改已存在 headerpm.request.headers.upsert({ key: 'Conn

2022-05-12 13:50:31 945

转载 KMP模式匹配算法——next值求解

j 1 2 3 4 5 6 7 8 模式串 a b a a b c a c next[j] 0 1 1 2 2 3 1 2各个位的解释 1.前两位必定为0和1。 2.计算第三位的时候,看第二位b的next值,为1,则把b和1对应的a进行比较,不同,则第三位a的next的值为1,因为一直比到最前一位,都没有发生比较相同的现象。 3.计算第四位的时候,看第三位a的next值,为1,则把a...

2019-01-05 10:51:16 3550

转载 KMP算法

有些算法,适合从它产生的动机,如何设计与解决问题这样正向地去介绍。但KMP算法真的不适合这样去学。最好的办法是先搞清楚它所用的数据结构是什么,再搞清楚怎么用,最后为什么的问题就会有恍然大悟的感觉。我试着从这个思路再介绍一下。大家只需要记住一点,PMT是什么东西。然后自己临时推这个算法也是能推出来的,完全不需要死记硬背。KMP算法的核心,是一个被称为部分匹配表(Partial Match Table...

2019-01-03 20:52:41 122

转载 const_cast的真正用途

C++ primer 原话是“如果常量本身不是常量,获得的权限是合法的, 如果本身是常量,使用const_cast再写的后果是未定义的。”所以如果单纯int a,是好理解的,就是达到了我们的目的。如果a本身就是const,就是那块内存被定义为const的话,这样的结果是未定义的,在我的编译器和机器上,这个被定义为无法改变,可是在其他机器上,就不一定了。所以,const_cast的目的并不是...

2018-11-06 22:19:51 243

转载 C++中static_cast和dynamic_cast强制类型转换

一、static_cast关键字(编译时类型检查)用法:static_cast < type-id > ( expression ),该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性,它主要有如下几种用法:(1)用于基本数据类型之间的转换,如把int转换为char,把int转换成enum,但这种转换的安全性需要开发者自己保证(这可以...

2018-11-06 22:14:50 161

转载 结构体、结构体体指针作为函数返回值

函数使用结构体、结构体指针作为返回值分析32位机,gcc编译器使用结构体作为返回值分析反汇编代码可知,当被调用的子函数返回值为结构体的时候,调用函数将分配一段空间用于存放返回的结构体(使用一个结构体变量接受返回值),并将这段空间的地址作为调用时的参数压栈。子程序不负责对要返回的结构体分配空间。最后返回eax中存放的是结构体空间(栈中)的地址。在子程序退出的时候,调用函数可以在自己的栈帧中访...

2018-11-05 17:02:42 6643 2

转载 斐波那契数列C语言实现

斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,像这样的:1、1、2、3、5、8、13、21、34、55......#include <stdio.h>long long Fbnl(int N)   //非递归{    int  a1 = 0;    int  a2 = 1;    int  a3 = N;    printf("...

2018-11-03 21:22:27 620

转载 ASCII可显示字符

ASCII可显示字符 二进制 十进制 十六进制 图形 0010 0000 32 20 (空格)(␠) 0010 0001 33 21 ! 0010 0010 34 22 " 0010 0011 ...

2018-11-03 21:15:39 335

转载 C语言关键字及其解释[共32个]

 C语言一共有32个关键字,如下表所示:关键字 说明 auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声明长整型变量或函数 float 声明浮点型变量或函数 double 声明双精度变量或函数 char 声明字符型变量或函数 struct 声明结构体变量或函...

2018-11-03 14:55:01 26843

转载 (转)C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,就没必要把所有的代码都写进去,就可以用条件编译,通过预编译指令设置编译条件,在不同的需要时编译不同的代码。   (一)条件编译方法   条件编译是通过预编译指令来实现的,主要方法有:   ...

2018-11-01 17:20:24 227

转载 AT&T汇编语言语法及GCC的内嵌汇编语法

AT&T汇编语言语法及GCC的内嵌汇编语法  AT&T ASM SyntaxOverview 开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。 所以我们必须了解汇编语言,即使你...

2018-10-30 22:15:53 255

转载 两种单例模式

 一。 单例模式有以下的特点:(eg。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。为了避免不一致状态)1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。1)懒汉式单例:Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟...

2018-10-30 13:36:00 1217 1

转载 C语言实现设计模式之单例模式

有过面试经验的朋友,或者对设计模式有点熟悉的朋友,都会对单例模式不陌生。对很多面试官而言,单件模式更是他们面试的保留项目。其实,我倒认为,单件模式算不上什么设计模式。最多也就是个技巧。简单的单例模式(不考虑多线程和release)要是用C++写,一般这么写。#include <string.h>#include <assert.h> class object...

2018-10-30 13:26:29 1073

转载 FILE数据类型

1、FILE 是 C语言文件结构定义, 打开文件和文件操作要用到这类结构。可以看成变量类型,用于变量声明。这个是一种数据结构类型,用来表示一个文件的相关信息,如果定义了一个文件指针,就用这个指针来指向某个文件,然后就能使用这个指针对文件来进行操作了。 2、FILE在"stdio.h"中有如下定义:struct _iobuf {char *_ptr; //文件输入的下一个位置int ...

2018-10-23 21:35:35 8544

转载 带你了解make menuconfig

带你了解make menuconfig时间:2018-08-15作者:华清远见在嵌入式领域当中,在配置内核的时候会有很多配置方法,比如说make config(基于文本的为传统的配置界面)、make oldconfig(如何只想在原来内核配置的基础上修改一部分,则会省去很多麻烦)、make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)、make menuconfi...

2018-10-23 19:12:49 32393

转载 关于字节,半字,字到底有多多少位

以前总是没搞清楚半字,字到底有多少个字节,有说字是4字节的,又说字是8字节的,但没有个固定的说法下面这段话摘抄自Computer system: a programmer's perspectiveBuses are typically designed to transfer fixed-sized chunks of bytes known as words. Thenumber o...

2018-10-22 10:59:30 6254

转载 stm32f103串口BootLoader(有keil工程)

因为在论坛和官网都没搜到完全合适的BootLoader,所以自己移植完成了一个BootLoader工程。另外附APP文件工程,可做实验。用良心保证,看完后可以做一个成功的实验。上位机选用SecureCrt,单片机用的stm32f103vet6。首先搞清楚BootLoader过程步骤,代码可以再根据自己需要修改:步骤一:初始化IO口,初始化uart串口,初始化定时器等等步骤二:进入B...

2018-10-21 21:52:21 1149

转载 break,continue,return的区别

break,continue,return的区别最近总使用到这3个关键字,所以想总结一下他的用法.     1)break     直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出.     2)continue     也是终止当前的循环过程,但他并不跳...

2018-10-19 19:36:03 90

转载 ARM Cortex-A 系列处理器

ARM Cortex-A Series ProcessorsARM Cortex A53 Versus CortexA15The Cortex A53 uses the ARMv8-A architecture to support 32-bit ARMv7 code and 64-bit AArch64 execution state. The Cortex-A53 processo...

2018-10-18 22:55:24 854

转载 linux中软链接和硬链接的区别与小结

首先我们需要了解linux下硬链接以及软连接的基本概念.硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用.软链接:也称为符号链接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件.下面详细介绍一下硬链接和软连接之间的区别.1.硬链接和原来的文件没有什么区别,而且共享一个 inode ...

2018-10-18 15:51:55 119

转载 main函数中两个参数的用法总结

1、定义 C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:int main (int argc,char *argv[]){…}或者 int mai...

2018-10-18 12:50:39 1198

转载 linux C函数之stat函数

1.函数功能:通过文件名filename获取文件信息,并保存在buf所指的结构体stat中2.函数原型1)函数头文件#include <sys/stat.h>#include <unistd.h>2)函数int stat(const char *file_name, struct stat *buf )3)返回返回值:     执行成功则...

2018-10-17 22:11:55 399

转载 C语言中#define的用法

今天整理了一些#define的用法,与大家共享!1.简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i<MAXTIME){.........}编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为defi...

2018-10-17 22:10:25 271

转载 如何查看errno 错误代码

首先在自己的程序中#include<errno.h>添加打印errno的语句 printf("errno is: %d\n",errno);根据errno的值查错。errno的不同值的含义:以下来自linux 2.4.20-18的内核代码中的/usr如何查看errno 错误代码 /include/asm/errno.h#ifndef _I386_ERRNO_H#define...

2018-10-17 22:07:48 710

转载 linux几种时间函数总结

一、linux时间函数总结  最近的工作中用到的时间函数比较频繁,今天抽时间总结一下,在linux下,常用的获取时间的函数有如下几个:   asctime,  ctime, gmtime, localtime, gettimeofday ,  mktime, asctime_r, ctime_r, gmtime_r, localtime_r二、常用的结构体(1)struct t...

2018-10-17 21:07:03 101

转载 Linux下time函数

Linux下time函数都在time.h头文件中。1、头文件和时间有关的头文件有以下几个:time.hsys/time.hsys/times.hsys/timeb.hsys/timex.htime.h是C标准库的头文件,其余sys开头的都是Linux系统自己的头文件。/usr/include/time.h定义了常用的time函数。到/usr/include/sys目录...

2018-10-17 20:47:56 8072

转载 Linux头文件详解

头文件主目录include头文件目录中总共有32个.h头文件。其中主目录下有13个,asm子目录中有4个,Linux子目录中有10个,sys子目录中有5个。这些头文件各自的功能如下,具体的作用和所包含的信息请参见第14章。<a.out.h>:a.out头文件,定义了a.out执行文件格式和一些宏。 <const.h>:常数符号头文件,目前仅定义了i节点中i_mod...

2018-10-17 18:44:43 1360

转载 linux man 命令 详解

刚接触linux的时候,都会使用man来查阅一些命令的帮助信息。但是也都只是使用"man 命令名称"这样简单的格式。其实,man还有不少其他小技巧,在这和大家分享一下。1 当你列出write时,它可能代表了Linux里的用户命令或系统调用,如果我只是想了解write这个系统调用的作用,而对write命令的命令格式没有兴趣,那么我该如何告诉man呢?man命令后面可以加一个数字参数,表示...

2018-10-17 18:31:17 166

转载 LINUX 使用tcgetattr与tcsetattr函数控制终端

为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数。tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数。这两个函数的具体信息如表6.2所示。表6.2 tcgetattr函数和tcsetattr函数 头文件   函数形式 int tcgetattr(int...

2018-10-17 14:15:05 522

空空如也

空空如也

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

TA关注的人

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