自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 通过一个实例来理解路由与路由表

原文链接  

2018-09-22 15:42:43 1209 1

转载 linux 使用lseek函数来获取文件大小

原文链接:https://blog.csdn.net/xiaokuang5020/article/details/74644866 一、获取文件大小     /*测得文件大小*/ int filelen; int fd;     int fil...

2018-09-15 16:34:07 987 0

转载 静态网页和动态网页的区别

原文链接 一、静态web页面: 1、在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件...

2018-09-09 08:24:22 799 0

转载 交换机开发(二)—— 三层交换机报文转发过程

原文链接:链接 如图所示,假如主机A想访问主机B,首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0).然后判断目的IP地址(即Host-B的IP地址)与自...

2018-09-04 17:24:50 1168 0

转载 交换机开发(一)—— 交换机的工作原理

原文链接:链接 一、交换机的工作原理      当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。交换机之所以能实现这一功能,是因为交换机内部有一个MAC地址表,MAC地址表记录了网络中所有MAC地址与该交换机各端口的对应信息。某一数据帧需要转发时,交换机...

2018-09-04 17:08:14 4864 1

转载 Linux下DIR,dirent,stat等结构体详解

原文链接:链接 最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。 首先说说DIR这一结构体,以下为DIR结构体的定义: struct __dirstream       {        void *__fd;      ...

2018-09-01 21:31:49 192 0

转载 9针串口调试

原文链接:链接 9针串口引脚图: 常用串口分为RS232串口和RS485串口,9针引脚图如上,左边是RS232串口的引脚图,右边是RS485的引脚图。 调试时: 两个232串口连接:串口A和串口B通讯时,用串口A的TXD练串口B的RXD,串口A的RXD连串口B的TXD,GND相连(通常...

2018-08-29 17:05:32 873 0

转载 NRF SPI时序理解

原文链接:链接  

2018-08-29 16:02:54 814 0

转载 NRF24l01无线模块调试心得!STM32_SPI驱动NRF24L01+

原文链接:链接 经过两日的调试nRF24L01终于调试成功。耐心,细心。有想法。资料。数据手册。总就会成功。   下面是调试的基本方法:               24L01是收发双方都需要编程的器件,这就对调试方法产生了一定的要求,如果两块一起调,那么通讯不成功,根本不知道是发的问题还是收的...

2018-08-29 14:44:13 8781 1

转载 IAP是什么

原文链接:链接 1.IAP是什么--简介   IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。 2.IAP...

2018-08-29 13:30:32 4224 0

转载 TFTLCD显示实验_STM32F1开发指南_第十八章

原文链接:链接      第十八章 TFTLCD显示实验 前言     上一章我们介绍了OLED模块及其显示,但是该模块只能显示单色/双色,不能显示彩色, 而且尺寸也较小。本章我们将介绍ALIENTEK 2.8寸TFT LCD模块,该模块采用TFTLCD面板 ,可以显示16位真彩色图片...

2018-08-29 11:06:42 3419 0

转载 STM32 串口 #pragma import(__use_no_semihosting)解析

原文链接:链接 标准库函数的默认输出设备是显示器, 要实现在串口或 LCD 输出,必须重定义标准库函数里调用的与输出 设备相关的函数 . 例如 :printf 输出到串口,需要将 fputc 里面的输出指向串口 (重定向 ),方法如下 : 只要自己添加一个 int fputc(int ch, F...

2018-08-29 10:23:17 2494 1

转载 C语言#pragma预处理

  原文链接:链接 在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作...

2018-08-29 10:16:19 243 0

转载 KEIL MDK5新建工程步骤

原文链接:链接

2018-08-28 18:49:56 4423 0

转载 基于STM32的SPI基本介绍

STM32---SPI(DMA)通信的总结(库函数操作) 本文主要由7项内容介绍SPI并会在最后附上测试源码供参考: 1.     SPI的通信协议 2.     SPI通信初始化(以STM32为从机,LPC1114为主机介绍) 3.     SPI的读写函数 4.     SPI的中断...

2018-08-28 13:00:40 5841 0

转载 stm32之spi之NSS管脚信号

原文链接:链接 NSS管脚及我们熟知的片选信号,作为主设备NSS管脚为高电平,从设备NSS管脚为低电平。当NSS管脚为低电平时,该spi设备被选中,可以和主设备进行通信。在stm32中,每个spi控制器的NSS信号引脚都具有两种功能,即输入和输出。所谓的输入就是NSS管脚的信号给自己。所谓的输出...

2018-08-28 12:00:30 446 0

原创 将字符串中的单词反序

题目描述:现有一个字符串如:This is my book, 请写一个功能函数将这个字符串中的单词反序,处理结果:book my is This 思路: 如下图所示,开辟三块内存,通过strtok取出第一块内存中的第一个单词,通过strcat将单词、空格、pstr3连接放在第二块内存中,再将第...

2018-08-21 17:51:24 470 0

转载 I/O多路复用技术(multiplexing)

原文链接:链接 首先,要从你常用的IO操作谈起,比如read和write,通常IO操作都是阻塞I/O的,也就是说当你调用read时,如果没有数据收到,那么线程或者进程就会被挂起,直到收到数据。 (图片来源:http://www.masterraghu.com/subjects/np/intr...

2018-08-18 16:37:14 259 0

转载 linux tar 文件归档命令

原文链接 tar命令介绍:  -c: 建立压缩档案  -x:解压  -t:查看内容  -r:向压缩归档文件末尾追加文件  -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gz...

2018-08-11 11:10:46 1044 0

转载 工程管理器

原文链接 在实际的开发过程中,仅仅通过使用GCC命令对程序进行编译时效率是非常低的,原因主要有以下两点:   1.程序往往是由多个源文件组成的,源文件的个数越多,那么GCC的命令行就会越长。此外,各种编译规则也会加大GCC命令行的复杂度,所以在开发调试程序的过程中,通过输入GCC命令行来编译...

2018-08-11 11:05:17 122 0

转载 透彻 Linux (Unix) 五种 IO 模型

原文链接:链接 IO模型   用一幅图表示所支持的I/O模型 纵向维度是“阻塞(Blocking)”、“非阻塞(Non-blocking)”;横向维度是“同步”、“异步”。总结起来是四种模型 同步阻塞、同步非阻塞;异步阻塞、异步非阻塞 。《Unix网络编程》中划分出了“第五种”模型——...

2018-08-10 20:15:36 55 0

转载 内存的四种分配方式

原文链接:链接 1.  堆,由程序员手动分配和释放,如果程序员没有释放,在程序结束时由系统回收,分配方式类似于链表。由于堆是程序员管理的,如果管理不当会导致内存泄露的问题,内存泄露指已经分配的内存空间无法被系统回收也无法被继续使用。解决这个问题,C++可以使用智能指针对象去指向分配的内存,在对象...

2018-08-07 13:17:14 985 0

转载 Linux grep和find的区别

原文链接:链接 这是两个不同的命令,关于grep: Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 而linu...

2018-08-06 18:12:00 114 0

转载 双向冒泡排序

原文链接:链接 排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。 文章规划: 一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 具体思路分析不展开描述。 二。通过《大话数据结构》一书的截图,详细分析该算法 。  ...

2018-08-06 13:32:14 1214 0

转载 快排的两种方式

转载链接:链接 快速排序的基本思想是,通过一轮的排序将序列分割成独立的两部分,其中一部分序列的关键字(这里主要用值来表示)均比另一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两部分的元素不需要进行比较,故减少了比较次数,降低了排序时间。   ...

2018-08-06 11:35:23 222 0

转载 fopen与open的区别

原文链接:链接 int open(const char *path, int access,int mode)       path 要打开的文件路径和名称                                  access 访问模式,宏定义和含义如下:             ...

2018-08-02 16:57:56 57 0

转载 msgctl()函数

原文链接:链接 通过msgctl()函数,我们可以直接控制消息队列的行为。它在系统库linux/msg.h 中的 定义是这样的: 系统调用: msgctl() 函数声明: int msgctl ( int msgqid, int cmd, struct msqid_ds *buf ) 返回值: ...

2018-08-01 16:37:25 852 0

转载 msgrcv()函数

原文链接:链接 msgrcv()函数被用来从消息队列中取出消息。它在linux/msg.h 中的定义是这样的: 系统调用: msgrcv() 函数声明: int msgrcv ( int msqid, struct msgbuf *msgp, int msgsz, long mtype, int...

2018-08-01 16:35:34 7521 0

转载 msgsnd()函数

原文链接:链接 从函数名就可以看出,msgsnd()函数是用来向消息队列发送消息的。在linux/msg.h 它 的函数定义是这样的: 系统调用: msgsnd() 函数声明: int msgsnd ( int msqid, struct msgbuf *msgp, int msgsz, int...

2018-08-01 16:34:36 541 0

转载 msgget()函数

原文链接:链接 msgget()函数被用来创建新的消息队列或获取已有的消息队列。其函数定义如下: 系统调用: msgget() 函数声明: int msgget ( key_t key, int msgflg ) 返回值: message queue identifier on success ...

2018-08-01 16:33:37 1657 0

转载 ftok()函数

原文链接:链接 系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。 ftok原型如下: key_t ftok( char * fname, int id ) fname就时你指定的文件名,id是子序号。 在一般的UNIX实现中,是将文件的索...

2018-08-01 16:31:12 290 0

转载 条件变量、pthread_cond_init

原文链接:链接 1.初始化条件变量pthread_cond_init #include <pthread.h> int pthread_cond_init(pthread_cond_t *cv, const pthread_condattr_t *cattr); ...

2018-08-01 14:55:58 76 0

转载 互斥锁 pthread_mutex_init()函数

原文链接:链接 linux下为了多线程同步,通常用到锁的概念。 posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。 即对象互斥锁的概念,...

2018-08-01 14:45:03 2633 0

转载 条件变量pthread_cond_t怎么用

原文链接:链接 最近看《UNIX环境高级编程》多线程同步,看到他举例说条件变量pthread_cond_t怎么用,愣是没有看懂,只好在网上找了份代码,跑了跑,才弄明白     [cpp] view plaincopy #include <pthread.h> ...

2018-08-01 14:29:59 40 0

转载 逻辑右移与算数右移

原文链接:链接 C/C++语言中逻辑右移和算数右移共享同一个运算符>>。编译器决定使用逻辑右移还是算数右移,根据的是运算数的类型。如果运算数类型是unsigned则采用逻辑右移,而signed则采用算数右移。对于signed类型的数据,如果需要使用算数右移,或者uns...

2018-07-29 13:25:30 2375 0

转载 C实现二分查找

原文链接:链接 简要描述 二分查找又称折半查找,对排好序的数组,每次取这个数和数组中间的数进行比较,复杂度是O(logn)如:设数组为a[n],查找的数x, 如果x==a[n/2],则返回n/2; 如果x < a[n/2],则在a[0]到a[n/2-1]中进行查找; 如果x...

2018-07-29 12:54:02 1433 0

转载 Ubuntu 12.04 LTS 中文输入法的安装

原文链接 我装的是英文版的 Ubuntu12.04,如果安装中文版,会自动安装中文输入法,这篇文章也是为了以后重装 Ubuntu 做一个准备 废话不多说,进入正题:   第一步:安装语言包   进入 “System Settings” 找到 “Language Support” ...

2018-07-28 20:57:27 871 0

转载 一语句实现x是否为2的若干次幂的判断

原文链接 一语句实现x是否为2的若干次幂的判断 #define is2*n(x)  ((x & (x - 1))? 0 : 1) int main(void) {         int m = 512;         cout << ((...

2018-07-28 19:28:09 1772 0

转载 C语言变量存储位置

原文链接:链接 全局变量存放在静态存储区,位置是固定的。 局部变量在栈空间,栈地址是不固定的。 栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序...

2018-07-28 13:53:19 444 0

转载 C语言再学习 -- 关键字volatile

原文链接:链接 一、volatile 介绍 参看:volatile详解 参看:C Language Keywords   Indicates that a variable can be changed by a background routine. Keyword volatile...

2018-07-28 12:03:47 52 0

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