自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 shell脚本检查程序是否挂掉然后重新运行

把该sh加入到开机自启动文件/etc/rc.local中,即可实现开机自启动,程序挂掉重新运行。#!/bin/shwhile truedops -ef | grep "gateway" | grep -v "grep"if [ "$?" -eq 1 ] #上一条命令返回值0成功,1失败then /root/gateway #要运行的应用程序、脚本等 echo "process has been restarted!"else echo "proces

2020-05-09 00:24:12 1304

原创 解决OpenWrt的ps命令不支持带参数问题

OpenWrt路由器中使用的busybox内置的ps命令具有令人不愉快的功能,当尝试指定其他参数时,它会忽略错误而不显示任何错误,并且根本不显示任何数据。不可能教她了解经常使用的参数-busybox中唯一可用的选项是w参数,而其他参数则根本不存在。因此,自动键入ps axu |grep progname而不是预期的结果,控制台显示:ps: invalid option -- a实际上它隐藏在procps软件包组中。通过安装procps和procps-ps,我们可以将完整的ps实用程序带入OpenW.

2020-05-09 00:01:40 4121

原创 不使用任何中间变量如何将a、b的值进行交换

用异或按位运算,交替三次即可实现。void swap(int *a, int *b){ *a ^= *b; *b ^= *a; *a ^= *b;}

2020-04-12 23:39:28 599

原创 有符号变量与无符号变量的值的转换

知识点:原码和补码,在计算机系统中,数值一律用补码来表示和存储正数的补码:与原码相同负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后加1例如,一个char类型的 -7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 0000111按位取反为1111000;再加1,所以-7的补码是11111001。若...

2020-04-12 21:29:07 355

原创 单链表——C++模板实现

用模板技术实现链表可适用不同类型的数据类型单链表:每个结点只包含该结点存储的数据以及直接后继的地址信息头结点:头结点不存储数据但是存储下一个结点的地址,只是用来方便遍历链表这里的头结点,需要单独来处理,因为当泛指类型为类类型时,若由于研发人员定义的类有问题,然后存储在链表里,那么抛异常就会抛到链表类这里来了,所以头结点的value用占位数组char reserved[sizeof(T)...

2020-04-06 21:11:58 942

原创 关于malloc(0)返回值的一些看法

题目来自https://www.jobui.com/mianshiti/it/qianrushi/5829/以下是原文下面的代码片段的输出是什么,为什么?char *ptr;if ((ptr = (char *)malloc(0)) == NULL)puts(“Got a null pointer”);elseputs(“Got a valid pointer”);这是一个有趣...

2020-04-05 23:07:08 601 1

原创 判断大小端模式

大端小端是指高位存放在高地址还是存放在地址值。大端:高位存放在低地址,低位存放在高地址小端:高位存放在高地址,低位存放在低地址不管是大端还是小端,读取数据都是从低地址开始读,因此char类型在大端小端都是一样的,可以用union来判断大小端。union var{ int a; char b;};int is_little_endian(void){ ...

2020-04-05 21:57:23 140

转载 堆栈的区别

关于堆栈的讲解(我见过的最经典的)https://blog.csdn.net/yingms/article/details/53188974

2020-04-05 10:51:12 251

原创 冒泡排序——函数模板实现

要点:1、冒泡排序就是从水底(数组尾部),把小的重量轻的,往水面上浮(移到数组头部)2、从尾部开始,两两比较,若后一个比前一个小,则交换位置。#include <iostream>using namespace std;template <typename T>static void Swap(T& a, T& b){ T ...

2020-04-05 00:32:08 2137

原创 快速排序——函数模板实现

要点:1、大于基准pv的数放在一边,小于pv的放在另一边.2、Partition函数返回基准数的位置pivot对基准的左边快排Quick(array, begin, pivot-1);对基准的右边快排Quick(array, pivot+1, end);3、递归求解,直到不满足begin<end#include <iostream>using...

2020-04-04 21:35:38 406

原创 嵌入式经典笔试题

1、堆和栈的区别堆上的空间是手动分配和释放的,栈上的空间是自动分配与释放的。栈空间是有限的,堆空间是很大的自由储存区2、全局变量与局部变量的区别作用域不同:全局变量作用域为整个程序,局部变量作用域为当前语句块。 内存存储方式:全局变量在全局数据区,局部变量储存在栈上。 生命周期不同:全局变量的生命周期跟程序一样,局部变量随着语句块的结束而结束。 当局部变量和全局变量同名...

2020-03-30 23:11:58 1235

原创 memset函数实现

功能:内存块填充将ptr指向的内存块的前num个字节设置为指定的value(解释为unsigned int)。void*memset(void*ptr,intvalue,size_tnum){ assert(ptr); char*temp=(char*)ptr; while(num--)...

2020-03-29 21:44:01 444

原创 strncmp函数实现

函数功能:字符串比较,比较前n个字符,若遇到结束符'\0'则提前终止比较返回值:>0 第一个不匹配的字符在str1中的值比在str2中的值高 0 相等 <0 第一个不匹配的字符在str1中的值比在str2中的值低 int my_strncmp ( const char* str1, const char* str2, size_t num ){...

2020-03-29 16:43:25 1168

原创 strncpy函数实现

把src所指向的字符串复制到dest,最多复制n个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。注意:Copies the firstnumcharacters ofsourcetodestination. If the end of thesourceC string (which is signaled by a null-chara...

2020-03-29 15:41:33 522 1

原创 strcmp函数实现

函数功能:把str1所指向的字符串和str2所指向的字符串进行比较。返回值:如果返回值小于 0,则表示 str1 小于 str2。 如果返回值大于 0,则表示 str1 大于 str2。 如果返回值等于 0,则表示 str1 等于 str2。int strcmp(const char* str1, const char* str2){ assert(str1 &a...

2020-03-29 14:14:30 543

原创 strcat函数实现

函数功能:把source 所指向的字符串追加到destination所指向的字符串的结尾。char * strcat ( char * destination, const char * source ){ assert((destination!=NULL) && (source!=NULL)); char* ret = destination;...

2020-03-29 10:24:17 662

原创 strcpy函数实现

注意:1、需考虑异常情况。可用宏assert来完成2、strcpy会拷贝末尾的 '\0'#include <stdio.h>#include <assert.h>char* strcpy(char* des, const char* src){ assert((des!=NULL) && (src!=NULL)); ...

2020-03-29 00:11:27 165

原创 strlen函数实现

要求:不能使用局部变量和全局变量,实现strlen功能思路:用递归实现,递归出口条件为*str=='\0'int strlen(char* str){ return *str=='\0' ? 0 : 1+strlen(str+1);}...

2020-03-27 09:58:16 217

原创 strstr函数实现——KMP算法

#include <iostream>#include <cstring>#include <cstdlib>using namespace std;//s:子串int* make_ptm(const char* p){ int len = strlen(p); int* ret = static_cast<int*&...

2020-03-15 10:47:16 267

原创 阿里Iot SDK的注册回调分析

注册回调函数用了三个宏来实现,巧妙的用了##来拼接函数#define IOT_RegisterCallback(evt, cb) iotx_register_for_##evt(cb)#define DECLARE_EVENT_CALLBACK(evt, cb) int iotx_register_for_##evt(cb);#define DEFIN...

2020-03-08 21:07:58 1390 1

原创 指定xpath相对路径,删除xml文件里所有指定node节点

利用C libxml2的库。需要删除掉xml中某些节点,但我又不想从根节点开始去找。想到了用xpath来找xml的节点,然后参考官方的XPath example(xpath2.c)附上链接http://www.xmlsoft.org/examples/index.html。官方例子只有set node的,没有delete的。改了一下发现能用,用valgrind工具检查内存也通过了。#inc...

2019-11-19 10:52:03 1049

转载 C++容器和迭代器

一、顺序容器vector1.1容器是什么 在C++中,容器被定义为:在数据存储上,有一种对象类型,它可以持有其他对象或指向其他对象的指针,这种对象类型就叫做容器。简单理解,即容器就是保存其他对象的对象。而且,这种“对象”还有处理“其他对象”的方法。 容器是随着面向对象语言的诞生而提出的,它甚至被认为是早期面向对象语言的基础。现在几乎所有面向对象语言中都伴随着一...

2019-10-12 22:10:46 261

转载 看懂UML类图和时序图

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,看后面章节的设计模式结构图就没有什么问题了;本章所有图形使用Enterprise Architect 9.2来画,所有示例详见根目录下的design_patterns.E...

2019-10-11 17:45:19 185

转载 线程绑定CPU核-sched_setaffinity

CPU亲合力就是指在Linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行.一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行.在一个多处理器系统中,设置CPU亲合力的掩码可能会获得更好的性能.一个CPU的亲合力掩码用一个cpu_set_t结构体来表示一个CPU集合,下面的几个宏分别对这个掩码集进行操作: CPU_ZERO() 清空一个集合 ...

2019-09-27 18:48:02 885

转载 Linux 下SVN命令详解

1、将文件checkout到本地目录svn checkoutpath(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svnaddfile 例如:svnaddtest.php(添加test.php) svnadd*.php(添加当前目录...

2019-09-12 15:41:40 308

转载 C++中trim和split方法的实现

很多其他语言的libary都会有去除string类的首尾空格的库函数,但是标准C++的库却不提供这个功能。但是C++string也提供很强大的功能,实现trim这种功能也不难。trim(去除首尾空格)1、使用string的find_first_not_of,和find_last_not_of方法#include <iostream>#include &lt...

2019-09-10 15:31:56 587

转载 C++内联函数

一、基本定义 inline是C++语言中的一个关键字,可以用于程序中定义内联函数,inline的引进使内联函数的定义更加简单。说到内联函数,这里给出比较常见的定义,内联函数是C++中的一种特殊函数,它可以像普通函数一样被调用,但是在调用时并不通过函数调用的机制而是通过将函数体直接插入调用处来实现的,这样可以大大减少由函数调用带来的开销,从而提高程序的运行效率。一般来说inline用...

2019-09-05 09:43:50 495

转载 零值比较--BOOL,int,float,指针变量与零值比较的if语句

此文章转载自https://www.cnblogs.com/wlzy/p/6986360.html这是程序员面试的一道常见题,也是个C++基础问题。若只在大学里看过几本基础的编程入门书,看见这道题可能会觉得奇怪,不就是和0比较吗,直接拿出来比就是了,其实非也。下文引自google搜索结果,出处不详,高手可以无视,菜菜留下,记得做好笔记。首先给个提示:题目中要求的是零值比较,而非与0进行比较,在...

2019-07-30 15:52:10 485

原创 范围for

使用范围for语句将字符串内的所有字符用X代替#include <iostream>#include <string>using namespace std;int main(){ string s("0123456789"); cout << s << endl; for (auto &c : s) c = 'X'; ...

2019-07-28 16:08:19 202

转载 引用

引用(reference)为对象起了另外一个名字,引用类型引用另外一种类型。引用即别名,引用并非对象,它只是为一个已经存在的对象所起的另外一个名字。通过将声明符写成&d的形式,其中d是声明的变量名:int ival = 1024;int &refVal = ival; //refVal指向ival(是ival的另一个名字)int &refVal2; //...

2019-07-27 16:40:51 161

原创 单词翻转

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...

2019-07-26 17:30:12 773

转载 移植mplayer到新唐N32926

编译器:arm-linux-gcc(4.3.2) 软件包:libmad-0.15.1b.tar.gz(arm芯片不带浮点运算,故关闭默认的MP3解码库,使用libmad库) MPlayer-1.0rc4.tar.gz(播放器) Pc平台:ubuntu在移植之前有必要先说明一下几个问题:Mplayer是自带的mp3lib库来进...

2019-07-15 22:36:45 288

原创 移远BC26模组连接阿里云物联网平台

第一步:在阿里云创建设备登录阿里云,没有账号的可以自己注册一个,免费的1、在产品栏搜索“物联网设备接入”,点击进入2、进入“管理控制台”3、“设备管理”→“产品”→“创建产品”4、创建“高级版”5、添加设备以上操作生成了三元组,复制下来,等下设备连接阿里云要用到第二步,设备上云文档Quectel_BC26_MQTT...

2019-05-09 16:03:27 5589 1

Quectel_BC26_重要注意事项及常见问题_V1.0.pdf

本文档主要介绍了移远通信 BC26 模块使用过程中的重要注意事项及常见问题答疑。

2019-05-09

Quectel_BC26_TCP(IP)_AT_Commands_Manual_V1.0.pdf

Quectel BC26模块具有嵌入式TCP/IP协议栈,允许主机通过命令直接访问Internet。这大大减少了对PPP和TCP/IP协议栈的依赖,从而将成本降到最低。

2019-05-09

Quectel_BC26_MQTT_Application_Note_V1.1.pdf

移远BC26模组AT指令版本MQTT应用开发文档,可连接阿里云

2019-05-09

2015蓝桥杯简易温度采集与控制装置

为推动软件开发技术的发展,促进软件专业技术人才培养,向软件行业输送具有创新能力和实践能力的高端人才,提升高校毕业生的就业竞争力,全面推动行业发展及人才培养进程,工业和信息化部人才交流中心特举办“全国软件专业人才设计与创业大赛”,本赛包括个人赛和团队赛两个比赛项目,个人赛设置:1、C/C++程序设计(本科A组、本科B组、高职高专组)2、Java软件开发(本科A组、本科B组、高职高专组)3、嵌入式设计与开发(大学组、研究生组)4、单片机设计与开发(大学组)5、电子设计与开发(大学组),团队赛设置:软件创业赛一个科目组别。并且形成了立足行业,结合实际,实战演练,促进就业的特色。

2017-09-04

空空如也

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

TA关注的人

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