自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AndrewYZWang的博客

keep life simple! stupid

  • 博客(536)
  • 资源 (24)
  • 论坛 (1)
  • 收藏
  • 关注

原创 自己开源项目汇总

从零构建cmake管理的live555开源工程代码仓库:live555-cmake视频教程:live555-cmake

2020-11-17 17:28:51 104

原创 linux系列文章

linux文章汇总VIMbashMakefileubootu-boot编译过程分析linuxLinux系统编程Linux/UNIX网络编程

2019-11-09 22:07:43 410

原创 linux上常用工具集

工具集 – linuxMarkdown 编辑器 – TyporaGit版本管理软件 – SmartGitDiff 比较软件 – Meld Diff 差异查看器代码编辑器 – Source Insight代码查看 – Visual Studio Code抓包 – WireShark截图软件-- Shutter串口软件 – PUTTY桌面壁纸软件 – Wallch浏览器 – ...

2019-03-05 22:51:24 372

原创 EffectiveC++1

视C++为一个语言联邦一开始C++只是C加上一些面向对象特性,但是随着这个语言的成熟他变得更加无拘无束,接受不同于C with classes的各种观念、特性和编程战略。异常对函数的结构化带来了不同的做法,templates将我们带来到新的设计思考方式,STL则定义了一个前所未见的伸展性做法。今天C++已经是个多重范型编程语言,一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。这些能力和弹性使C++成为一个无可匹敌的工具,因此、将C++视为一个语言联邦。尽量以cosnt、enu

2021-06-14 22:54:29 17 2

原创 C++优化热点语句

优化热点语句提前计算固定值先观察下面的性能测试代码:static void find_blank(benchmark::State& state) { for (auto _: state) { char s[] = "This string has many space (0x20) chars. "; for (size_t i = 0; i < strlen(s); ++i) if (s[i] == ' ')

2021-05-31 23:26:56 16 1

原创 最简单的方式实现一棵二叉树

使用最简单的方式实现看树写代码C++实现这段代码之所以能够正常工作,是因为数组元素的地址是常量表达式。我们可以使用这种标记法定义任何链式结构,但是这种初始化方法难以记住,所以在构建这种结构时很容易出现编码错误。//// Created by andrew on 2021/5/29.//#include <iostream>using namespace std;int main(int argc, char* argv[]) { // 看着图就可以手上写一个二叉树

2021-05-29 12:07:51 8

原创 C++性能优化-字符串的优化

字符串的优化糟糕的字符串连接函数在C++中字符串是按照值的形式实现的,又因为C++中字符串底层是使用动态内存实现的,因此、在项目中对字符串的优化必不可少,也是性能优化的重点。假如代码中有如下remove_ctrl函数的实现:std::string remove_ctrl(std::string s) { std::string result; for (int i=0; i<s.length(); ++i) { if(s[i] >= 0x20)

2021-05-25 23:54:33 45 5

原创 const函数和const对象

const函数和const对象const修饰函数时,表明该函数不能修改成员变量const修饰对象时,表明该对象不能引用成员中非const的成员函数#include <iostream>#include <mutex>using namespace std;/* * 1. const成员函数不能修改成员变量 * 2. const对象不能引用非const成员函数 * */class WatchData {public: WatchData() =

2021-05-23 21:42:39 4

原创 C++中的RAIL风格

RAIL风格RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。因为系统的中的资源不是无限的,因此、通常没有使用RAIL风格的使用方式是获取资源使用资源释放资源如:void fileHandler() { FILE

2021-05-23 21:10:11 37 1

原创 gtest-断言

断言ASSERT_*系列的断言当检查失败时,退出当前函数EXPECT_*系列的断言当检查失败时,继续向下执行布尔值的检查Fatal assertionNonfatal assertionVerifiesASSERT_TRUE(condition);EXPECT_TRUE(condition);condition is trueASSERT_FALSE(condition);EXPECT_FALSE(condition);condition is false

2021-05-19 23:04:04 14

原创 原子操作和互斥量的区别

原子操作和互斥量的区别原子操作和互斥锁都是并发编程中常见的技术。原子操作原子操作就是操作过程中不能被中断的过程,在针对某个值得原子操作,在被进行的过程中CPU绝对不会再进行其他的针对该值的操作。原子操作仅会由一个CPU指令代表和完成,原子操作是无锁的,常常直接通过CPU指令直接实现。其他同步技术实现常常依赖于原子操作。互斥锁和原子锁的区别严格来说互斥锁是一个数据结构,是写代码开发人员人为约束的一种都要遵循的一系列操作。 原子操作是单个不可被打断的操作,没有其他线程可以打断它。原子操作的优势是更

2021-05-05 23:06:00 44

原创 C++异常处理

github代码提交记录异常处理机制若是有异常则通过throw操作创建一个异常对象并抛掷将可能抛出异常的程序段嵌入到try块之中,控制通过正常的顺序执行到try语句,然后执行try块内的保护段如果在保护段执行期间没有引起异常,那么跟在try块后的catch子句就不执行,程序从try块后跟随者最后一个catch子句后面的语句继续执行下去。catch子句按其在try块后出现的顺序被检查,匹配的catch子句将捕获并处理异常如果匹配的处理器未找到,则执行函数teminate将自动调用,其缺省功能是调

2021-04-25 17:45:02 134 2

原创 草稿

#include <mutex>#include <algorithm>#include <iostream>#include <string>#include <vector>#include <map>using namespace std;once_flag apnDataFlag;struct APN_DATA{ string CP; // 国家运营商 string APN;

2021-04-08 16:27:36 22

原创 使用互斥元保护共享数据-lock_guard

用互斥元保护共享数据线程相对于进程的优势在于能够共享数据,线程相对于进程的劣势也在于数据能够共享。如何多个线程安全的访问数据,你可以使用互斥锁保护数据,也可以优化数据结构使用无锁编程,或者使用事务保证数据同一时间只能被一个线程访问。这里主要说的就是如何使用互斥锁对数据进行保护,使用互斥锁有一个问题就是需要使用者,在需要更改数据的时候调用lock()对数据加锁,在更改数据结束之后调用unlock()对数据解锁,如果漏掉解锁或者因为异常处理原因跳过解锁函数会导致死锁。人为的去加锁和解锁不可避免的会出现只写

2021-04-01 19:54:03 41 1

原创 设计一个函数能够取出字符串中指定的字符

看到这时我们很容易的想到直接使用memmove,在找到了指定的字符之后将后面的字符向前移动,使用了memmove这个函数内部也是将后面的字符挨个复制到指定的位置。如果遇上testssss要是向去除字符串中的t,就不可避免的得将estssss挨个向前移动一个位置之后,在将ssss挨个向前移动一个位置。如果你把这件事情想想成挑选苹果,将好的苹果放到自己的购物篮,要是使用上述说的方式那你就是一直将所有苹果拿走,然后挨个放到下个果篮,如果遇到坏的就这样来一次,一直到所有的苹果都是查看结束。可以想象正常我们肯定不

2021-03-14 18:04:41 62

原创 使用malloc初始化一个类和new初始化一个类的区别

new出来对象会调用对象的构造函数,但是malloc出来的对象是没有调用构造函数的,因此下面使用malloc初始化的对象私有变量是没有经过构造函数初始化的但是通过new出来的对象,对象已经经过构造函数的初始化。//// Created by andrew on 2021/3/8.//#include <iostream>#include <string>using namespace std;class MallocClass {private: str

2021-03-08 22:40:13 92

原创 leetCode第五题-求字符串最长回文字符串

原题链接: 最长回文字符串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成来源:力扣(LeetCode)链接:https://leetcod

2021-03-07 22:24:54 37

原创 leetCode-第四题求两个数组的中位数

两数组中的中位数原题链接: 两数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:

2021-03-07 17:32:11 30

原创 leetCode刷题-第三题查找字符串最长子串

在给定的字符串中查找最长子串题目链接:题目链接给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。如:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。题意分解如abcabcbb,我们先把abc放到set或者map hash表中, 再放第四个元素的时候我们发现第四个元素a和第一个重复,这个时候我们需要将窗口向前滑动,并将原先hash表中的a元素清除C++代码实现://// Created by andrew

2021-03-07 14:34:54 60

原创 leetCode刷题-第二题两数之和

两数之和题目连接:题目链接给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,

2021-03-07 11:18:35 17

原创 网络知识总结

网络知识OSI、TCP/IP、五层协议的体系结构,以及各层协议OSI分层物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP分层网络接口层、网际层、运输层、应用层五层协议物理层、数据链路层、网络层、传输层、应用层每层的协议对应如下物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)–(Bit)数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)– (Frame)网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、I

2021-03-03 19:35:16 43 1

原创 go语言goroutine的取消

go语言中使用 contex实现goroutine的取消package mainimport ( "context" "fmt" "sync" "time")// context 如何优雅的控制子goroutinevar wg sync.WaitGroupfunc f(ctx context.Context) { defer wg.Done() //整个缩进都会跳出LOOP: for { fmt.Println("child goroutine") time.Sl

2021-02-05 23:16:47 44

原创 go语言中append函数的使用

go语言中append处理slice每次调用appen都会根据当前的cap对slice进行评估, 如果cap不够,就按照2倍长度进行扩容package mainimport ( "fmt")/*append 是在slice原有的基础上,添加新元素若是原先就是长度,不会替换原先的元素,而是在后面进行增加*/func append1() { fmt.Println("========================append1=======================") s

2021-01-31 15:16:58 122

原创 当map遇上range

for key,val := range slicerange出的值是副本,并不是值的引用,for循环结束之后m[key]中存储的指针值都是指向val地址,因此打印出来是:0 -> 31 -> 32 -> 33 -> 3package mainimport "fmt"/*说明: m是一个int *int类型的map for range 循环的时候会创建每个元素的副本,而不是元素的引用, 所以 m[key] = &val 取的都是变量 val 的地

2021-01-30 23:32:44 32 1

原创 当defer遇上panic

panic会导致函数异常结束, 在函数异常结束之前会调用原先是defer压栈的函数package mainimport "fmt"// panic调用会结束函数, 调用panic之前会先调用defer压栈的函数// 说明defer 函数会在任何函数调用结束标志之前 先按照逆序调用原先defer的函数/*4321panic: 这里出发异常goroutine 1 [running]:main.defer_call() /home/andrew/go/src/basi

2021-01-30 22:29:43 41

原创 leetCode刷题--两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 3:输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输出:[8,9,9,9,0,0,0,1]提示:每个链表中的节点数在范围 [1, 100] 内0 <= Node.val <= 9题目数据保证列表表示的数字不含前导

2021-01-26 23:40:37 19

原创 OpenGL从入门到精通--纹理

纹理github源码仓库opengl环境准备opengl编程从入门到精通-hello,windowOpenGL从入门到精通–你好三角形OpenGL从入门到精通–着色器的使用我们可以为每个顶点添加颜色来增加图形的细节,从而创建更加有趣的图像。但是、为了让图像看起来更加真实,就必须有非常多的顶点,这将产生很多额外的开销每个模型都需要有更多的顶点,每个顶点又需要有自己的颜色属性。使用纹理能在节省内存的情况下展现更多的细节为了能够把纹理映射到三角形或者其他形状上,我们需要为每个顶点指定对应纹理的哪个

2021-01-24 22:06:58 49

原创 OpenGL从入门到精通--着色器的使用

着色器着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。GLSL着色器是使用一种叫做GLSL的类C语言写成的,GLSL是为图形计算量身定制的,他包含一些针对向量和矩阵操作的有用特性。着色器的开头总是要声明版本,接着是输入和输出变量、uniform和main函数。每个着色器的入口点都是main函数,在这个函数中

2021-01-17 23:48:37 125

原创 OpenGL从入门到精通--你好三角形

三角形绘图中需要牢记下面这几个单词顶点数组对象:Vertex Array Object, VAO顶点缓冲对象:Vertex Buffer Object, VBO索引缓冲区:Element Buffer Object, EBO或Index Buffer Object, IBO在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphi

2021-01-17 11:49:53 54

原创 opengl编程从入门到精通-hello,window

窗口请确认是在包含GLFW的头文件之前包含了GLAD的头文件。GLAD的头文件包含了正确的OpenGL头文件(例如GL/gl.h),所以需要在其它依赖于OpenGL的头文件之前包含GLAD。进行任何事之前先初始化glfw初始化函数glfwInit// 对glfw进行初始化glfwInit();版本的命中和版本信息的获取(非必须)// 打印出glfw的版本信息// int* major, int* minor, int* revint major, minor, rev;

2021-01-16 19:36:58 100

原创 opengl从入门到精通

Hello opengl[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-doGykhkE-1610789382531)(image/opengl.jpg)]前置知识全文使用C++实现,要有一定的C++基础,但你并不非得是一个C++专家线性代数几何三角学在开始这段旅程之前我们先了解一下OpenGL到底是什么。一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然

2021-01-16 17:31:33 52

原创 leetCode刷题第一天--求两数之和

两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路:· for j := i+1;j < k;j++ ·j肯定大于i所以不需要在判断j的有效性,因此效率更高f.

2020-12-23 00:07:15 64

原创 go性能优化

Go性能优化CPU profile:报告程序CPU使用情况,按照一定频率去采集应用程序CPU和寄存器上面的数据Memory Profile (Heap Profile):报告内存使用情况Block Profiling:报告goroutines不在运行状况情况下,可以用来分析和查找死锁等性能瓶颈Goroutine Profiling:报告goroutine的使用情况,有哪些goroutine它们调用关系是怎样的package mainimport ( "flag" "fmt" "os"

2020-12-22 23:27:06 166

原创 go get 命令提示没有权限问题解决

出现一下类似的问题,是因为你安装go是直接将go源码解压进行安装的,需要对解压后的go目录加上可执行权限:go get github.com/google/pprof: copying /tmp/go-build384767642/b001/exe/a.out: open /usr/local/go/bin/pprof: permission denied家可执行权限:#进入到对应目录,执行:sudo chmod -R 777 go/...

2020-12-22 00:07:01 493

原创 go语言中的闭包

闭包闭包是什么?闭包是一个函数,这个函数包含了他外部作用域的变量函数可以作为返回值函数内部查找变量的顺序,先自己内部找,找不到再往外层找如何形成闭包结构内层函数+外层函数局部变量(可以是入参或者定义的局部变量) = 闭包结构如果将一个内层函数作为函数返回值内层函数中又涉及到外层函数的局部变量(自己定义或者外部传进来的参数,都是局部变量)1+2 条件满足后,就会导致该局部变量的声明周期发生改变,外层函数的局部变量不会随着外层函数的借宿而销毁将这种内层函数变量和外层局部变量,统称为闭包结构

2020-12-14 22:25:31 54

原创 说一说ffmpeg到处都在使用的ff_thread_once函数

从名字就能知道ff_thread_once函数的作用,就是保证在多线程调用的时候,函数只执行一次FFmpeg中是使用经典的double check来保证函数只执行一次的,我们来跟踪下函数看下具体的实现:ff_thread_once函数是调用pthread_once函数实现的:#define ff_thread_once(control, routine) pthread_once(control, routine)pthread_once函数实现如下:static av_always_inlin

2020-12-13 22:18:27 102

原创 FFmpeg音视频入门-使用FFmpeg读取多媒体文件的信息C++代码实现+详解

读取音视频信息设置日志等级// 设置日志等级av_log_set_level(AV_LOG_DEBUG);参数检查必须给出要读取的多媒体文件路径才能进行接下来的多媒体读取的任务。if (argc != 2) { cout << "please input a reading file" << "argc = " << argc << endl; return -1;}char *inputFileName = argv[1]

2020-12-13 16:22:24 339 2

原创 FFmpg音视频入门教程

FFmpegFFmpg是音视频领域的瑞士军刀,由C语言进行编写,广泛的支持C++, python,java,go等语言的调用,继承了几乎所有的编解码库和流协议,并能任意的添加图片水印和问题,能解决音视频开发领域几乎所有的问题, FFmpeg的开源协议为LGPL何GPL协议,也就是说他能在一定程度上允许闭源商用,前提是不要使用它的GPL开源的功能。本文经过裁剪参考:https://ffmpeg.org/documentation.html原文地址:https://www.fawdlstty.com/f

2020-12-12 23:59:03 457

原创 go语言中goroutine池

创建三个goroutine,创建5个任务,用三个goroutine干5个任务package mainimport ( "fmt" "time")func worker(id int, jobs <-chan int, results chan<- int) { for j := range jobs { fmt.Printf("worker:%d start job:%d\n", id, j) time.Sleep(time.Second) fmt.Printf("

2020-12-12 20:29:13 58

原创 go语言中的匿名函数

匿名函数:没有名字的函数package mainimport "fmt"func main() { /* 匿名函数: 没有名字的函数 匿名函数,需要在匿名函数尾部加上()直接调用 */ func1() // 匿名函数采用的也是函数名字 ()实现调用 // 匿名函数的实现和调用 func() { fmt.Println("Anonymous call back.") }() // 加上了小括号实现了函数的调用 // 匿名函数的多次调用 func3 := fu

2020-12-10 23:51:14 88

最新GeoLite2资源整合.zip

开源的IP地理数据库GeoLiteCity,类似于GeoIPCity,但不如后者精确。免费数据库GeoLite的格式与收费数据库GeoIP相同。任何可以读取GeoIP的代码都可以读取GeoLite。其存储是MaxMind DB格式。 里面放了 GeoLite2-City.mmdb(等同于GeoLite2-Citt.dat 该文件形式已经被wireshark弃用,使用GeoLite2-City.mmdb能完全兼容),国家字段的csv文件以及城市的csv都放到里面,可以打包下载

2020-10-03

GPS-6M-模块+DMA上传

更改的原子的GPS使用串口3+DMA进行GPS的数据接收

2017-07-28

配置samba服务器的配置文件备份

自己使用的是ubuntu16.04与自己的windows主机在在进程资料传输的时候一直使用ftp但是这样做很不方便,于是自己就折腾了一下配置了samba服务器,为了方便以后重装系统之后还需要重新配置就将配置文件进行了copy源文件的路路径和名称是  /etc/samba/smb.conf

2018-08-25

Roboware使用手册0.711

ROS入门到精通,想学习ROS的同学可以下载非常的经典,帮助你快速开发ROS程序

2018-01-10

C++基础课程讲义.pdf

面向过程的结构化程序设计方法  设计思路 – 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。  程序结构: – 按功能划分为若干个基本模块,形成一个树状结构。 – 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序 、 选择和循环三种基本结构组成。 – 其模块化实现的具体方法是使用子程序。  优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发 和维护。  缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件 – 把数据和处理数据的过程分离为相互独立的实体。 – 当数据结构改变时,所有相关的处理过程都要进

2020-09-26

福昕阅读器--linux最新版

福建福昕软件开发股份有限公司(Foxit Software Incorporated)是一家国际化运营的PDF电子文档解决方案提供厂商,是国际PDF协会主要成员、中国版式文档OFD标准制定成员。福昕在亚洲、美洲、欧洲和澳洲设有多家子公司,福昕直接用户已超过5.6亿,企业客户数达10万以上,遍及世界200多个国家和地区。2020年9月8日,福昕软件正式在上交所科创板挂牌上市,股票代码:688095,证券简称:福昕软件。 福昕具有完全自主产权的PDF核心技术,提供文档的生成、转换、显示、编辑、搜索、打印、存储、签章、表单、保护、安全分发管理等涵盖文档生命周期的产品技术与解决方案。 福

2020-11-14

Professional CMake

Attempting to use any tool before understanding at least the basics of what it does and how it is meant to be used is most likely going to result in frustration. On the other hand, spending all one’s time learning the theory about something without getting hands-on makes for a rather boring experien

2020-09-26

dbeaver-ce_7.2.4_amd64最新版本|dbeaver-ce_7.2.4_amd64.deb

已下载 28.2 MB,耗时 12秒 (2,441 kB/s) 正在选中未选择的软件包 ca-certificates-java。 (正在读取数据库 ... 系统当前共安装有 203570 个文件和目录。) 准备解压 .../ca-certificates-java_20190405ubuntu1_all.deb ... 正在解压 ca-certificates-java (20190405ubuntu1) ... 正在选中未选择的软件包 java-common。 准备解压 .../java-common_0.

2020-11-14

ubuntu搭建ftp服务器

自己的环境是ubuntu16.04搭建的ftp环境,测试能够使用,并将相应的资源上传共享也能够方便自己日后使用

2018-08-26

linux上的可以绘制思维导图的软件

资源是可以安装在linux上的回执思维导图的软件,非常的好用

2018-08-25

MPU6050模块STM32驱动代码

自己移植的MPU6050程序,采用宏编译将MPU9150的寄存器也加了进去可以同时支持MPU6050和MPU9150两种模块

2017-07-28

自己参考网上的资源配置的vim编译器配置文件

因为ubuntu自带的vim使用的不是很方便,于是就自己动手参考网上的教程,配置了自己的vim环境, 源文件的路径和名称是  /etc/vim/vimrc 要是用户不行执行本用户使用不影响其他用户的配置可以将该文件改名为   .vimrc并放到  ~  目录下面

2018-08-25

2.变量和参数的介绍.md

变量是什么,变量是脚本编程中进行数据表现的一种方法,说白了,变量不过是计算机为了保留数据项,而在内存中分配的一个位置或一组位置的标识或名字。

2020-01-16

vim配色,用于配置viim

vim配色,让自己的vim像IDE一样工作,你想要的配置里面都有,只需要去掉自己不想要的设置就行

2018-08-25

IPC进程间通信

- IPC对象(消息队列、共享内存和信号量)存在于内核而不是文件系统中,由用户控制释放(用户管理IPC对象的生命周期),不像管道的释放由内核控制。 - IPC对象通过其标识来引用和访问,所有的IPC对象在内核空间中唯一性标识ID,在用户空间中的唯一性标识称为Key. - IPC对象是全局对象,可以通过ipcs,ipcrm等命令来查看或删除 - 每个IPC对象都由get函数创建

2019-05-03

最经典的bash资料

最经典的bash   shell编程资料因为网上买不到书本,就自己打印了一本,真的非常棒

2018-08-25

bsearch.zip

The bsearch() function searches an array of nmemb objects, the initial member of which is pointed to by base, for a member that matches the object pointed to by key. The size of each member of the array is specified by size. The contents of the array should be in ascending sorted order according to the comparison function refer‐ enced by compar. The compar routine is expected to have two arguments which point to the key object and to an array member, in that order, and should return an integer less than, equal to, or greater than zero if the key object is found, respectively, to be less than, to match, or be greater than the array member.

2020-04-18

strtok的赞歌.pdf

标记解析(`Tokenizing`)是最简单也是最常见的解析问题,也就是根据分隔符把一个字符串分割为几个部分。这个定义覆盖了所有这种类型的任务。根据空白分隔符(例如`" \t\n\r"`之一)分割单词。假设有个像`"/usr/include:/usr/local/include:."`这样的路径,在冒号处将其分开,形成单独的目录。根据一个简单的换行分隔符`"\n"`把一个字符串分割为不同的行。可以使用一个配置文件,包含`value = key`格式的行,在这种情况下分隔符就是`"="`。在数据文件中以逗号分隔的值当然是以逗号为分隔符。我们可以采取两个层次的分割来分别进行处理。例如读取一个完整的配置文件,首先根据换行符进行分割,然后在每行根据=进行分割。

2020-04-19

在ubuntu上配置ftp服务器的说明文档,亲测可用(图片)

环境是ubuntu16.04,配置ftp服务器的文档,亲测可用,所以上传分享,也可以方便自己今后再次配置使用(图片)(图片)

2018-08-26

RFC2616中文翻译-有待改进.odg

- 支持客户/服务器模式。 - 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、 POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规 模小,因而通信速度很快。 - 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。 - 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的 应答后,即断开连接。采用这种方式可以节省传输时间。 - 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着 如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在 服务器不需要先前信息时它的应答就较快。

2020-01-15

pycharm快捷键

python IDE常用快捷键,用于日常查看使用pycharm,包含所有pycharm上的快捷键及其使用方式

2019-05-03

GDB就该这样用

因为执行脚本的时候会自动新启用一个子 bash因此在脚本中设置的ulimit -c unlimited 并不能产生核心转存储文件,需要执行可执行文件之前手动设置一下 ulimit -c unlimited ------ DEBUG 是在linux下使用dbg的记录,一下的文件是在UBUNTU 16.04上验证通过的

2019-05-04

Sqlite3.pdf

## 使用SQLite创建数据库 **sqlite3_open(const char \*filename, sqlite3 \**ppDb)** 如果 *filename* 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。 如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。 简单的来说就是会打开一个数据库文件,文件不存在就会创建一个对应名字的数据库文件

2019-06-30

matplotlib

Matplotlib_slides.pdf

2017-01-02

AndrewYZWang的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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