- 博客(24)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 内存中的存储空间(堆、栈、bss、data、text)
进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。Linux进程的五个段:下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的。...
2019-07-31 14:31:33
4758
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 Linux内核的配置机制及其编译过程
参考:http://blog.csdn.net/zhengmeifu/article/details/7682373参考:https://blog.csdn.net/lizuobin2/article/details/51429937一、配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是:1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 ...
2019-07-29 09:54:44
1278
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 全面详解C语言使用cJSON解析JSON字符
cJSON对象的实现采用了树形结构,每个对象是树的一个节点,每个节点由cJSON这个结构体组成,对象中的元素也由cJSON这个结构体组成。同一层的对象和元素是双向链表结构,由next和prev指针链接。不同层的对象或元素由child指针链接起来。type表示对象或元素类型,string表示对象或节点的名称。元素的值存储在valuestring, valueint和valuedouble中。cJS...
2019-06-04 14:41:43
13465
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Socket之UDP服务器代码框架
server#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h&...
2019-04-16 10:25:09
261
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 栈的链式存储(C语言版本)
栈的链式存储设计与实现1、基本概念//LinkList.h#ifndef _LINKLIST_H_#define _LINKLIST_H_ //单链表的存储结构//结点中包含后继结点地址的指针域组成-可以理解为指向下一个结构体(结点)//(这里不包含数据域,是实现了 链表的api(链表的算法) 和 具体的数据分离)typedef struct _tag_LinkListNode...
2019-04-16 10:07:13
371
原创 双网口回环测试
最近碰到这样一个问题,一台linux机器上装有两个网卡,分别为eth0和eth1,将这两个网卡用网线直接连接起来,要进行回环测试,也就是从eth1发数据从eth0收到,从eth0发数据从eth1收到。在192.168.1.1看来,另一个网卡的地址是192.168.1.11, 而在192.168.1.2看来,另一个网卡的地址是192.168.1.22。然后是路由表的设置,设置了两个到目的地址的路由,目的地址分别是192.168.1.11和192.168.1.22。这两个地址其实是没有主机与其对应的。
2024-09-03 10:18:37
297
原创 C语言位域的定义和使用
位域的概念有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用0和1表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种数据结构,叫做“位域”或“位段”。位域是操控位的一种方法(操控位的另一种方法是使用按位运算符,按位运算符将在之后的笔记中做介绍)。位域通过一个结构声明来建立:该结构声明为每个字段提供标签,并确...
2019-09-11 19:42:11
2453
原创 结构体对齐规则
结构体对齐的规则:1.第一个成员在与结构体偏移量为0的地质处2.其他成员变量要对其到某个数字(对齐数)的整数倍的地址处 对齐数= min{编译器默认的对齐数 , 该成员空间字节大小}(vs下为8, linux下为4)3.结构体总大小为最大对齐数(每个成员都有一个对齐数)的整数倍4.如果出现嵌套情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大...
2019-08-10 14:10:38
435
原创 Coap协议学习(二)
1、基础了解1.1 CoAP消息类型CoAP采用与HTTP协议相同的请求响应工作模式。CoAP协议共有4中不同的消息类型。HTTP 与 COAP协议都是通过4个请求方法(GET, PUT, POST, DELETE)对服务器端资源进行操作。 两者之间明显的区别在于HTTP是通过文本描述方式描述协议包内容,协议包里面会包含一些空格符,换行符等,协议包可读性很强。而COAP是通过定义 二进制...
2019-08-08 13:50:39
906
原创 Coap协议学习(一)
1、什么是CoAP?互联网的 WEB 已经无处不在,这些 WEB 服务又依赖于 WEB 的 REST 架构。为了在大多的受限制节点上(例如 RAM 和 ROM 很有限的8位单片机)以及受限制网络上(例如 6LoWPAN)也能实现 REST 架构,人们着手处理“受限制的RESTful环境”,即CoRE。如6LoWPAN的受限网络支持将IPv6数据分成小包,但是这也极大降低的传输效率。CoAP...
2019-08-08 09:46:20
718
原创 嵌入式中 volatile 用法
1、引言volatile 会影响编译器编译的结果,volatile 关键词指明变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错。例如:volatile int i=10; int j = i; ... int k = i;//简单的几行代码读者可能会认为j、k的值相同 且听我分析2、volatile1)volatile ...
2019-08-01 11:29:37
717
原创 指针常量和常量指针
1、指针常量——指针类型的常量(int *const p)本质上是一个常量,在指针常量中,指针指向的地址不能改变,但指针指向的内容可以改变。int a = 10;int * const p = &a;*p = 30; // p指向的地址是不变的,但其指向的地址内容可以修改2、常量指针——指向“常量”的指针(const int *p, int const *p)本质上...
2019-07-31 14:09:54
262
原创 UDP 单播、广播、多播
https://blog.csdn.net/xiaolei251990/article/details/84562327
2019-06-19 09:34:42
524
原创 C语言五个常用的DeBug调试宏
调试宏:__FILE__: 所在文件名__FUNCTION__:所在函数名__LINE__:所在行数__DATE__:执行日期__TIME__:执行时间实例:#include <stdio.h>/* #给标记自动加上引号 */// 打印出变量名#define printNum(x) printf("%s = %d\n", #x, x)// 打...
2019-06-10 16:06:19
2156
原创 最小生成树之Prim算法详解(看不懂博主硫酸泡D)
MST(Minimum Spanning Tree,最小生成树)问题有两种通用的解法,Prim算法就是其中之一,它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任...
2019-04-20 11:20:34
401
原创 SPI时序详解(附代码)
SPI四种模式详解图解及源码://SPI的模式1:u8 SPI_ReadWriteOneByte(u8 tx_data){ u8 i,rx_data=0; SCK=0; //空闲电平(默认初始化情况) for(i=0;i<8;i++) { /*1. 主机发送一位数据*/ SCK=0;//告诉从机,主机将要发送数据 if(tx_data&0x80)M...
2019-04-17 09:53:25
5502
原创 Socket之TCP/IP服务器代码框架
server#include <stdio.h>#include <sys/types.h> #include <sys/socket.h>#include <arpa/inet.h>#include <stdlib.h>/*TCP服务器创建*/int main(int argc,char **argv){ i...
2019-04-17 09:43:29
502
原创 HTTP协议入门
一.HTTP简介HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World WideWeb )服务器传输超文本到本地浏览器的传送协议。HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。二.HTTP 工作原理1. HTTP 协议工作于C/S架构上。...
2019-04-17 09:33:22
188
原创 Socket网络编程判断客户端是否在线
Linux环境下编写的 TCP 服务器,当客户端断开连接时,使用 select 函数的情况下,服务器仍然会接收到一个信号, select 函数会将这个设备描述符标记为可读/写,然后服务器端调用 recv 函数,若 recv 函数返回值为 0,则表示客户端已经断开,服务器需要将对应的 Socket 套接字关闭掉,让数据写回磁盘,并释放文件所占用的资源。...
2019-04-16 09:34:02
3261
原创 栈的顺序存储(C语言版本)
**Stack基本概念**栈是一种 特殊的线性表栈仅能在线性表的一端进行操作栈顶(Top):允许操作的一端栈底(Bottom):不允许操作的一端Stack的常用操作创建栈销毁栈清空栈进栈出栈获取栈顶元素获取栈的大小栈的顺序存储设计与实现1、基本概念//线性表顺序存储设计与实现测试框架//SeqList.h#ifndef _SEQLIST_H_#defin...
2019-04-16 09:20:24
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人