自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 日志库相关

日志写入限速方法。

2024-07-14 16:06:14 71

原创 rust语言学习入门

Rust是一门系统编程语言,最初由Mozilla研究院的Graydon Hoare设计创造,并在Dave Herman、Brendan Eich以及其他贡献者的协助下逐步完善。尽管Rust的学习曲线可能较陡峭,但其强大的特性使其在系统编程、嵌入式开发、WebAssembly等领域成为受欢迎的选择。:Rust通过其独特的所有权系统、借用系统和类型系统,成功解决了传统系统编程中的内存泄漏和空指针异常等问题。:Rust的编译器能够生成高效的机器代码,且其所有权系统有助于避免不必要的复制操作。

2024-03-31 22:45:33 323

原创 Linux C语言函数调用栈打印

Linux C语言backtrace测试代码

2023-12-08 19:27:38 1136

原创 Linux C/C++ 程序内存泄露排查

本文主要记录了由C/C++程序动态申请内存引起的内存泄露问题的监控以及定位排查方法

2023-05-04 13:36:56 776

原创 设计模式学习笔记

开闭原则就是对扩展开放,对修改关闭。已经写好的类,当需要修改或者增加新的扩展功能时,不需要修改已经写好测试过的代码。接口隔离原则地基本思想是将复杂的接口分离为多个单独的接口,以避免强制实现者必须实现某些他们实际上并不需要的接口。单一职责原则是指每个类设计的时候职责尽可能单一,因此只有该职责需要变化时才需要修改这个类。高层模块不应该依赖低层模块,他们都应该依赖抽象接口。抽象接口不应该依赖细节,细节应该依赖抽象接口。某个接口以基类对象做为参数,那么它因该同等地接受子类对象做为参数,并且程序不会产生任何异常。

2023-04-08 12:17:49 395

原创 SQLite数据库锁机制研究

sqlite锁机制研究sqlite 事务sqlite锁与事务是紧密联系的,在探究锁之前先要了解一下sqlite事务。sqlite事务定义了一组SQL命令,这组命令会作为一个整体被全部执行。事务用begin开启,用commit提交,用rollback回滚。假设 sqlite执行了以下SQL语句,rollback将delete所做的修改取消了,那么最后select语句的结果将是foods表的行数。begin;delete from foods;rollback;select count(*) fr

2022-04-08 22:56:53 1917

原创 Igh EtherCAT Master 的使用

Igh EtherCAT Master 的使用EtherCAT Mater 的启动ethercat masterethercat slavesethercat cstruct二级目录三级目录EtherCAT Mater 的启动输入命令行:/etc/init.d/ethercat startethercat masterMaster0 Phase: Idle Active: no Slaves: 1 Ethernet devices: Main: b0:0c:d1:30:b6:

2020-09-18 11:38:37 2212

原创 圆圈中最后剩下的数字

题目0,1,2,3,… ,n-1 这 n 个数字排成一个圆圈,从数字 0 开始,每次从这个圆圈里删除第 m 个数字。求出这个圆圈里剩下的最后一个数字。思路设所要求的结果是 F(N, M) 表示在 N 个人围成一个圆圈中每次删除第 M 个数字圆圈里剩下的最后一个数字的编号。在 N 个数字圆圈中第一次删除的数字的编号为 (M-1)% N,此时圆圈剩下:0   1   2   …   (M-1)%N-1   (M-1)%N+1   …   N-1下一次删除数字从 (M

2020-09-17 10:54:47 110

原创 Java 和 C++的对比

Java 语言比 C++ 语言语法要简单一些,好学一些Java 编译成字节码,运行时需要 JVM 把字节码翻译成机器码,因此 Java 语言的跨平台特性要特别好。Java 语言的运行速度要比C++慢很多Java 中是完全对象化,一个数组是一个对象,所有的数据和方法都必须在类中存在,不能脱离类而单独存在。Java 中的类是按引用传递,C++中可以按值传递Java 有完善的内存管理机制,能自动回收垃圾,Java 的标准库比较完善,有很多好用的库Java 没有了指针的概念,C++还有...

2020-09-16 23:21:17 200

原创 数据结构与算法基础

数据结构与算法基础平衡二叉树二叉查找树(BST)平衡二叉树平衡二叉树也叫AVL树,AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。定义:它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。必要条件:1)必须师二叉查找树2)每个节

2020-09-11 23:04:53 125

原创 操作系统知识记录

操作系统基础知识进程与线程信号进程间通信TCP 和 UDP 的区别进程与线程进程:一个运行着的程序叫做进程,包含了该程序的地址空间和该程序所需要的系统资源。线程:在一个程序中的多个执行路线就叫做线程。线程优点:开销小,切换速度快,线程切换时操作系统做的工作少。缺点: 1)写多线程程序要仔细,共享变量会引发问题。 2)多线程程序调试会很困难线程同步:信号量,互斥量。互斥量和信号量的区别:1)互斥是指同一时刻只允许一个线程对某一资源的访问,具有唯一性和排他性,但无法限制访问者对资源的访问顺序。同

2020-09-09 20:57:13 78

原创 C++基础知识整理

C++基础知识C语言中宏定义的理解C++运行时分为哪几个区C++中的 new 和C语言中的 malloc 的区别全局变量和静态变量static全局变量与普通的全局变量有什么区别 ?static局部变量和普通局部变量有什么区别 ?static函数与普通函数的区别stctic成员变量和static成员函数C++多态的概念C语言中宏定义的理解#define是C语言中提供的宏定义方法,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率有两种常用的宏定义:(1)简单的宏定义:#d

2020-09-04 16:01:57 1739

原创 C++ string split() 和 trim() 的简单实现

@[TOC](C++ string split() 和 trim() 的简单实现)引言在Java语言中,对其中的字符串提供了比较丰富的库函数,其中使用比较多的当属 trim() 和 split(),为了在C++中使用着两个函数,需要自己编写。string trim()在Java语言中trim()的作用是去除首尾的空格,在C++语言中实现如下void trim(string & str){ int i = 0; while (i < str.size() && '

2020-08-28 22:43:47 246

原创 C++优先队列的妙用

目录原题思路源码结果原题剑指 Offer 41. 数据流中的中位数如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedi

2020-08-01 18:25:03 116

原创 C++ 逻辑变量 与、或使用时注意表达式的顺序

目录原题第一次编码结果问题解决办法第二次编程第二次结果原题请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、“±5”、"-1E-16"及"12e+5.4"都不是。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof著作权归领扣网

2020-07-18 22:06:05 647

原创 C++ int 型负数转换成 unsigned int 型时注意溢出

目录C++ int型,题目C++ int型,C++ int 型一般为32位,范围为[−2[^31], 2[^31] − 1] ,当负数最小值转换成正数时会溢出,所以要特别小心。题目实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入:

2020-07-18 10:38:26 1868

原创 注意C++ Vector 的判空

C++ Vector的判空题目第一次编码运行报错原因正确答案题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]

2020-07-11 21:17:47 4312 1

原创 Ubuntu16.04 安装 Qt4.8.7

Qt安装包:https://www.qt.io/

2020-06-10 11:12:54 460

原创 Windows10 安装使用 symPybotics

目录安装Python新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入安装Python下载安装包: https://www.python.org/downloads/release/python-383/右键以管理员身份

2020-06-05 10:37:46 1064 2

原创 Qt 易忘笔记

1. Qt Creator 设置多核编译在 tools —> Options —> Build & Run 中选择相应的 Kits 在 Environment 那一项点击 Change,填入 -j8 表示采用 8个线程编译

2020-01-08 19:25:15 154

原创 ROS学习笔记(三)

1. Catkin 工作空间Catkin 是 ROS 目前使用的编译系统,一般会包括四个目录空间: src, build, devel, install创建工作空间:$ mkdir -p catkin_ws/src$ cd catkin_ws/src/$ catkin_init_workspace 编译工作空间:$ cd ../$ catkin_make发现 catkin_m...

2020-01-06 11:24:36 161

原创 ROS学习笔记(二) turtlesim

前言在安装好ROS(详情请见上一章)之后,便可以通过ROS的一些简单的例程来学习ROS了。ROS最简单的例程是乌龟例程。从ROS的官网可以看出,ROS对于乌龟有种特殊的喜爱,这与ROS设计者的理念有关。1. turtlesim (turtle simulation)第一次运行需要安装,$ sudo apt-get install ros-kinetic-turtlesim接着打开 RO...

2020-01-05 20:49:29 991 1

原创 ROS学习笔记(一)安装ROS

1. 平台系统版本: Ubuntu16.04.6ROS版本: ROS Kinetic Kame官方网址 : https://wiki.ros.org/ROS/Installation2. 准备2.1 检查 Ubuntu 软件源在 Ubuntu 的 System Settings -> SoftWare & Updates -> Ubuntu SoftWare ...

2020-01-05 20:23:00 384

原创 Ubuntu16.04.6安装 IgH EtherCAT Master

1. 前言最近做机器人控制器项目需要使用到 EtherCAT 现场总线通信,通过 EtherCAT master 控制伺服驱动器带动多个轴同步运动,从而达到工业机器人多轴同步运动控制的效果。目前使用比较广泛的EtherCAT master有: TwinCAT,IgH EtherCAT Master,SOEM。IgH EtherCAT Master 具有较好的开源性、丰富的功能,因此我打算用 Ig...

2020-01-03 20:47:07 6970 17

原创 Ubuntu16.04.6 安装 RT_PREEMPT 实时内核

1. 准备工作系 统 : Ubuntu14.04.6内核版本 : Linux-4.15.0-72目标内核 : Linux-4.19.72-rt26参开网址 : https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/preemptrt_setup下载地址 : https://mir...

2020-01-03 16:52:23 3252

空空如也

空空如也

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

TA关注的人

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