- 博客(28)
- 问答 (2)
- 收藏
- 关注
原创 WEB服务器实现(药品商超)
在 C语言环境下,利用socket编程技术设计并制作一款基于HTTP协议的轻量级Web服务器。这个服务器不仅能够处理基本的Web请求,如用户注册、登录、产品罗列、详情页展示等,而且支持多用户实时并发访问。这意味着服务器能够同时处理来自多个客户端的请求,为用户提供快速且流畅的访问体验。
2024-11-16 19:19:22
824
原创 驱动---动态模块编译
--- 每次不用再 make uImage 进入minicom 也不需要tftp 0x30008000 uImage。2. vi –t tag (请把tag替换为您欲查找的变量或函数名)5. set tag=/path/tags(vi 底行模式下设置目标tags)3. Ctrl + ] (跳转到要找的目标)make modules 编译动态加载的驱动模块。nsmod demoy.ko 动态加载驱动模块。4. Ctrl + T (回跳)lsmod 查看已经动态加载的驱动模块。
2024-09-19 21:22:28
447
原创 DHT11 实现温湿度传感器
①主机首先将电平拉低,至少持续18us [ mdelay(20) ],随后再拉高;② 随后读取HDT发送的响应,先是80us的低电平随后拉高至80us;表明DHT11已经正确响应启动信号,即将开始传输数据2 . 读取0/1①当在启动时序的最后拉高80us后,如果遇到拉低50us和拉高26-28us则表示读取到 ‘ 0 ’; 当在启动时序最后 ,如果遇到了拉低50us和拉高70us则表示读取到 ‘ 1 ’ ; 所以可以根据高电平拉高时间来判断读取的是 ‘ 0 ’ 或者 ‘ 1 ’; ②判
2024-08-29 11:59:32
1597
原创 驱动 day1 --内核的编译
char 下 vim Makefile 里添加 OBJ-$(CONFIG_XXX) += XXX.o。官方认真的) vim .config --- 编译会直接编译。->④进行配置(是否需要修改)make menuconfig。在内核的Makefile中,你可以通过检查。>②找到.config 所在目录> ③选择拷贝内容为->文件中定义的配置宏来决定是否编译某个模块或文件。vim .config ->可以查看变化。中相应的配置宏是否被设置为。进入上级目录 ---->(表示编译为模块)。
2024-08-23 12:11:21
1193
原创 项目相关内容 ----- 2实现打印 ---- 图片与字符
从给定的BMP文件路径(pathname)中读取图像数据,并在一个图形界面上(通过draw_point函数)以某种方式显示这些图像数据部分解释:分配内存并读取图像数据这里表示代码假定的图像尺寸(400x320像素,每个像素3个字节)计算了图像数据的大小,并分配了足够的内存来存储这些数据。然后,它从文件中读取了这些数据。遍历并绘制图像这部分代码遍历了图像数据的每个像素。它首先定义了一个col结构体,用于存储当前像素的颜色值。然后,它逐个字节地从data。
2024-08-03 10:09:01
667
原创 实践项目------ 1部分内容解析
帧缓存本质上是一块内存或者硬件中的空间,用于存储需要渲染图像的像素相关信息。在渲染管线中,帧缓存是在实际渲染到屏幕之前的最后一个步骤,负责保存处理后的图像数据,以便后续输出到显示器上。帧缓存的存在使得在渲染过程中可以对图像进行后期处理(如抗锯齿、颜色校正等),同时也支持离屏渲染,即渲染过程不在屏幕上直接进行,而是在帧缓存中完成后再输出。
2024-07-31 00:40:43
824
原创 树 ----- 基础学习
树:n(n>=0)个结点的有限集合。n = 0 ,空树。在任意一个非空树中,1,有且仅有一个特定的根结点2,当n>1 时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个集合又是一个树,并且称谓子树。
2024-07-27 14:56:21
912
原创 队列---- 基础知识
链式队列是一种使用链表来实现的队列结构。队列是一种先进先出(FIFO,First In First Out)的数据结构,它允许在一端进行插入操作,而在另一端进行删除操作。在链式队列中,插入操作通常在队尾进行,而删除操作在队头进行。当数组队列进行出队操作时,可能需要将所有后续元素向前移动一位以填补空缺,这在大数据集上可能是一个昂贵的操作。链式队列的一个主要优点是它不需要像数组队列那样进行元素的移动。是只允许在一段进行插入,而在另一端进行删除操作的。允许插入的称谓队尾,允许删除的一端队头。
2024-07-26 19:39:31
574
原创 栈-----基础操作
数据结构中的栈是一种抽象的数据结构,用于解决特定问题;而进程中的栈则是操作系统为进程分配的一块内存区域,用于支持函数的调用和返回机制。两者在概念、作用、特性及实现方式上均存在显著差异。理解这些差异有助于更好地应用栈这一数据结构并深入理解操作系统的内存管理机制。
2024-07-25 14:35:46
966
原创 数据结构 链式存储 +
简单的来说,就是将原来单链表中最有一个元素的next指针指向第一个元素或头结点,链表就成了一个环,头尾相连,就成了循环链表。circultlar linker list.链表是逻辑结构连续物理结构(在内存中的表现形式)不连续。链表, 不需要预先分配,大小可变,动态分配。顺序表 需要预先分配空间,大小固定。注意非空表,和空表。顺序表是一段连续的存储单元。查找 顺序表O(1)
2024-07-24 15:35:36
754
原创 数据结构 Day2 链式存储
解决顺序存储的缺点,插入和删除,动态存储问题。特点:线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。可以被存储在任意内存未被占用的位置上。所以前面的顺序表只需要存储数据元素信息就可以了。在链式结构中还需要一个元素存储下一个元素的地址。为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。
2024-07-23 19:34:02
1121
原创 DAY 数据库 sqlite
sqlite> insert into user3 (NULL,'李四',23,datetime('now'));insert into user1 values (2,'张三',23,datetime('now','+8 hours'));///删除id=1 的数据;===>用sqlite3 来打开一个名称为test.db的本地数据库。////select。
2024-07-16 01:05:19
671
原创 网络编程 IO多路复用
定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标的输入、中断信号等等事件,再比如web服务器如nginx,需要同时处理来来自N个客户端的事件。逻辑控制流在时间上的重叠叫做 并发而CPU单核在同一时刻只能做一件事情,一种解决办法是对CPU进行时分复用(多个事件流将CPU切割成多个时间片,不同事件流的时间片交替进行)。
2024-07-13 02:40:01
909
原创 网络编程 Day 3 ------- TCB
5)收发循环 -------- read() /recv write()/send。4)accept --------- 服务器调用accept 与客户端建立连接。6)如果客户端断开,服务端是可以接收到断开请求的,则断开相关的socket关闭。3)listen ---------进入监听可以被连接的状态。2)connect ------- 客户端主动连接服务器。TCB 在传输中是由连接的,相对UDP来说更加可靠。2)实现1.png -cp。2) bind(连接)1) TCP简单实现。
2024-07-09 16:04:44
366
原创 网络编程 Day1-1 UDP简单实现
PF_UNIX == AF_UNIX ==>单机程序。SOCK_STREAM 流式套接字 ===》TCP。参数:domain 地址族,PF_INET == AF_INET ==>互联网程序。SOCK_DGRAM 用户数据报套接字===>UDP。SOCK_RAW 原始套接字 ===》IP。struct _sockaddr_in ///网络地址结构。struct sockaddr ////通用地址结构。------> 先处理客户的请求-------> sendto (循环)
2024-07-09 03:10:41
808
原创 网络编程 day1
ip: ifconfig ethX X.X.X.X/24 up ifconfig ens33 192.168.0.13/24(24子网掩码mac) up 255.255.255.0。(数据有可能丢包,存在数据丢失)//(网络直播,实时的视频音频,讲究效率) 协议 文件 视频,音频。(数据用户报,数据可能对包,但是实时性高,数据发送完链路释放节省网络开销) 56k猫。接口层 (物理层与链路层(软+硬)) ====》网卡 驱动 1GB。
2024-07-05 16:30:36
550
原创 Shm,Sem,Msg
//信号量的PV操作,如果改值等于-1则表示p。///信号量的操作方式 0 表示默认阻塞。///信号量集中信号量的编号,默认以0开始。key ==> 申请信号量集 ==》init==>PV操作 ===》删除信号量。IPC对象之信号量集 ==>sem ===》为了解决共享内存的临界资源访问。参数:pathname 路径+名称===》任意文件,只要不会。semnum 要删除的信号量集中的信号量的编号。key ==》申请对象 ==》映射对象==》读写对象。功能:修改共享内存属性,也可以删除指定的共享内存对象。
2024-07-05 01:29:37
897
原创 同步 semaphore ,什么是死锁
信号定义------ sem_t sem_H,sem_W;(几个信号)初始化:(在线程运行起来)--------sem_init(&sem_H,0,1);/ /第一个0 表示是在运行线程非零则必表示运行进程般为0;/ /第二个:1表示先进行,0表示后进行;pv(申请)---------- 该不该走--------sem_wait(&sem_H);//谁走写谁释放 -------sem_post(&sem_W);//原本的0初值变为1,开始走。
2024-07-05 01:20:12
344
原创 进程间通信 ------ 信号通信
2)自己一直在玩,期间老爸叫了三次没有反应,之后老妈叫四遍在第四次停止游戏。sig 当前程序要发送的信号编号 《=== kill -l。===》xx是 void fun(int) 类型函数的函数指针。功能:通过该函数可以给pid进程发送信号为sig的系统信号。===>fun 有三个宏表示:SIG_DFL 表示默认处理。功能:进程暂停,不再继续执行,除非。发送进程 信号 接收进程。功能:给进程自己发送sig信号。
2024-07-03 23:09:33
954
原创 day1 高编学习
在屏幕显示hello world(建立一个.sh文件对都其添加权限再操作 )vi 1.sh - chmod +x 1.sh - ./1.sh。--- 如果不存则mkdir -- cd -- chmod -- 最后输出文件被创建。expr主要运用于简单的整数运算,在进行运算时符号两边要存在空格,以及注意运算符是否需要转义(\*)读取文件名 --- 如果文件存在则设置权限为777 ---- 并输出文件存在。实现100以内的累加求和(运用seq)实现十以内奇数偶数的判断。实现两个数的四则运算。
2024-06-21 01:39:10
191
用结构体编写程序c++
2021-12-23
c++排序和写文本文件
2021-12-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人