undefined
undefined
Tyson2462
这个作者很懒,什么都没留下…
展开
-
联合体union
将联合体指针强转为成员的指针是合法的,因为联合体某一时刻只有一个成员起作用#include <stdio.h>#include <stdlib.h>struct member{ int i; int j;};union test{ char m[32]; struct member n;};int main(){ union test x; struct member *y = NULL; x.n.i = 1; x.n.j = 2.原创 2022-05-24 20:36:14 · 110 阅读 · 0 评论 -
windows查看端口号以及该端口号对应的进程
netstat -anoC:\Users\15701>netstat --help显示协议统计信息和当前 TCP/IP 网络连接。NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [-x] [-y] [interval]-a 显示所有连接和侦听端口。-b 显示在创建每个连接或侦听端口时涉及的可执行文件。在某些情况下,已知可执行文件托管多个独立的组件,此时会显示创建连原创 2022-05-18 08:23:51 · 206 阅读 · 0 评论 -
select,poll,epoll
select#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include <sys/select.h>int select(int maxfd,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);//pseudocode#define n 1024int fd原创 2022-05-08 15:12:30 · 538 阅读 · 0 评论 -
802.11r中PTK生成过程
802.11r简述:802.11r是为快速漫游服务的,即移动终端从一个AP切换到另一个AP后,如何在保证安全的基础上快速地计算出PTK,从而缩短漫游的时间AP1和AP2组成了一个移动域(MD,mobile domain)STA首先跟AP1进行WiFi连接:报文交互过程:sta<——>ap1AUTH帧交互sta<——>ap1association request和association response关联请求帧中携带了MDIE,里面有MDID(2个原创 2022-04-25 15:49:55 · 863 阅读 · 0 评论 -
结构体中存在数组大小为0或1的成员
struct test_a{int a;char b[0];};struct test_b{int a;char b[1];};好处是为了方便的管理内存缓冲区,如果直接使用指针而不是数组,那么在分配结构体内存缓冲区时需分配两次,一次是分配结构体,一次是分配结构体里的指针,且这个时候指针指向的是另一段内存,与结构体的内存是不连续的。使用数组的时候可以分配只分配一次结构体的长度再加可变内容的长度,这样分配...原创 2022-04-24 17:37:24 · 186 阅读 · 0 评论 -
gcc和g++的区别
GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言gcc:GCC中的GUN C Compiler(C 编译器)g++:GCC中的GUN C++ Compiler(C++编译器)1、gcc和g++都可以编译c和cpp文件,注意这里只说编译,不要把编译和链接混淆gcc将c和cpp这两种文件分别对待,cpp的语法规则和c是有区别的g++则将c和cpp这两种文件当成cpp原创 2022-04-12 11:24:29 · 314 阅读 · 0 评论 -
arm相关寄存器
状态寄存器:CPSR(current program status register,当前程序状态寄存器)SPSR(saved program status register,备份程序状态寄存器) N (negative) Z (zero) C (carry borrow) V (overflow) Q ... I F T M4~M0 正原创 2022-04-24 10:34:12 · 303 阅读 · 0 评论 -
UML类图
在类图中一共包含了以下几种模型元素,分别是:类(Class)、接口(Interface)以及类之间的关系类(class):接口(interface):接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)类图中关系(relation):泛化(Generalization):是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。【箭头指向】:带三角箭头的实线,箭头指向父类实现(Realization):是一种类与接口的关系原创 2022-03-31 09:17:34 · 551 阅读 · 0 评论 -
UART、SPI、IIC
universal asynchronous receive transmit,通用异步接收发送属于串行通信的一种方式(serial communication),区别于并行通信的另一种通信方式(parallel)UART还有一个关键的特性是异步(asynchronous),即不需要时钟信号,这是和IIC和SPI的一个典型区别,后两者属于同步通信方式(synchronous)UART是通过开始和停止信号来区分通信的开始的和结束,同时通信过程严格按照波特率来收发UART的开始位原创 2022-04-06 20:59:07 · 238 阅读 · 0 评论 -
zImage、bzImage、uImage、vmlinuz、vmlinux
zImage:gzip压缩的内核镜像文件,最大只能512KBbzImage:也是gzip压缩的内核镜像文件,但是没有zImage的512KB大小限制这两种内核镜像都是用gzip压缩的,在镜像文件头部都带有解压代码zImage和bzImage的不同:1、内核镜像包含着实模式代码和保护模式代码,前者使用的是物理地址,后者使用虚拟地址,上电后默认工作在实模式,准备就绪后再进入保护模式2、两种镜像的实模式代码都是加载到0x90000地址处3、zImage的保护模式代码加载到0x100原创 2022-04-24 15:52:43 · 734 阅读 · 0 评论 -
tail命令
tail -f filename会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容原创 2022-04-12 16:59:34 · 58 阅读 · 0 评论 -
Linux程序编译相关
预处理(preprocessing):头文件、宏定义(#include, #ifdef, #define)gcc -E test.c -o test.i编译(compilation):汇编语言gcc -S test.i -o test.s汇编(assembly):机器语言gcc -C test.s -o test.o链接(linking):链接依赖库静态链接:将依赖的库都添加进可执行文件动态链接:只添加描述性的信息,程序执行时再加载相应的动态库编译静态库:原创 2022-04-24 09:06:51 · 823 阅读 · 0 评论 -
module_param
module_param(name, type, perm)用于给驱动传递参数name:变量名type:变量类型,如intperm:permit,也就是权限的意思,此参数在sys文件系统中所对应的文件节点的属性,如:0644,从左至右表示用户权限(读写)、组权限(读)、其它权限(读)#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO)#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_I...原创 2022-04-11 10:19:20 · 223 阅读 · 0 评论 -
最小生成树
minimum spanning tree,MSTMST性质:设一个带权无向图G(V,E,W) (V代表点集,E代表边集,W代表权值集),且T为G的一颗生成树,对于E中任意一条不属于T的边e,将其加入T中,会产生一条环(否则T不连通),如果e始终是环中权值最大的一条边,那么说明T满足MST性质。引理1:对于图G(V,E,W)的两颗生成树T1和T2,若它们都满足MST性质,则它们的权值和相同定理1:一颗生成树T是最小生成树,当且仅当它满足MST性质Prim算法:Prim算法基于一转载 2022-04-06 15:29:19 · 279 阅读 · 0 评论 -
python——print
python3.x中print为一个函数print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)sep:分隔符,当要打印多个对象时指定分隔符,默认是空格end:结束符,默认是换行,如果想不换行输出可以指定end=xxx如:print ("hello", end = '-')print ("world")hello-world...原创 2022-04-11 17:06:21 · 52 阅读 · 0 评论 -
浮点数在计算机的表示
浮点数分类:float(32bits)和double(64bits)浮点数表示的三个部分: 符号位 指数部分 尾数部分 float 1bit 8bits 23bits double 1bit 11bits 52bits 符号位:正数为0,负数为1指数部分:指小数点左移或右移的位数再加偏移量(8bits的指数部分偏移量为127,11bits的指数部分偏移量为1023)。注意:加偏移原创 2022-04-22 16:32:49 · 929 阅读 · 2 评论 -
ARM工作模式
用户模式(usr):非用户模式/特权模式:系统模式(sys)异常模式:快速中断模式(fiq)通用中断模式(irq)管理模式(svc)中止模式(abt)未定义指令模式(und)Linux上,用户态(user space)工作于usr模式,内核态(kernel space)工作于svc模式,用户态进程通过系统调用由用户模式切换到管理模式(通过执行 int 0x80,内核为0x80中断号分配了中断处理程序)ARM上电或复位后进入svc模式,强制PC从0x0000 0000处原创 2022-04-24 11:16:27 · 179 阅读 · 0 评论