- 博客(39)
- 收藏
- 关注
原创 framebuffer屏幕显示接口(linux)
Linux内核为应用提供的一套显示相关接口。framebuffer : 帧缓存、帧缓冲技术。1. 打开显示设备(/dev/fb0)2. 获取显示设备相关参数。4. 写入RGB颜色值。3. 建立内存映射。6. 关闭显示设备。
2024-08-14 20:20:26
143
原创 基础功能实现五:哈希算法以及算法
哈希算法:在记录的存储位置和它的关键字之间建立一种去特定的对应关系,使得每个关键字key对应一个存储位置;查找时,根据确定的对应关系,找到给定的key的映射。记录的存储位置 = f(关键字)我们把这种关系f称为哈希函数(散列函数);采用这种散列技术将记录存储在一块连续的存储空间,这块连续存储开空间称为哈希表或散列表。存储时,通过散列函数计算出记录的散列地址;查找时,根据同样的散列函数计算记录的散列地址,并按此散列地址访问记录。
2024-08-13 16:13:47
467
原创 基础功能实现四:二叉数
二叉树:任意一个节点的子节点个数不能超过2个(树的度为2),且子节点的位置不可更改。完全二叉树:只是删除了满二叉树最底层最右边的连续若干个节点,形成了完全二叉树。满二叉树:在不增加树的层数的前提下,无法再增加一个节点的二叉树。其他节点只有一个前驱节点,但可以有多个后继节点。K层满二叉树总共有2^k-1个节点。特性:满二叉树第K层有2^(k-1)个节点。叶子节点(终端结点):只有前驱结点没有后继结点。树的(广)度:树中各节点度的最大值。深度:从根节点到最底层节点的层数。结点度:子节点的个数称之为度。
2024-08-13 16:10:43
240
原创 数据与结构(链表)
一组用来保存一种或者多种特定关系的数据的集合(组织和存储数据)程序的设计:将现实中大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中,并在此基础上实现某个特定的功能的操作;程序 = 数据结构 + 算法。
2024-08-08 09:12:22
234
原创 商品购物网页的设计
系统名称: 基于TCP网络通信及数据库的网页查询系统文档作者:清馨创作时间:2024-8-3最新修改时间:2024-8-6最新版本号: 1.0 该系统为创建网络并发服务器,通过HTTP超文本网络传输与用户建立连接(TCP建立连接),从自己建立的数据库中查询用户所需信息,使用户能在网页中直接查询相关内容。本系统包括4个页面,包括(一级登陆页面,二级商品查询信息页面,三级商品概述页面,四级商品详情页面),使用户可以精准查询内容。 (并发服务器:使用多进行实现)接收网页发送的
2024-08-06 18:33:05
728
原创 服务器并发模型
单循环服务器:服务器在同一时刻只能响应一个客户端的请求并发服务器模型:服务器在同一时刻可以响应多个客户端的请求UDP:无连接TCP:有连接1.多进程资源空间消耗大效率低2.多线程相对进程资源消耗小效率较高3.IO多路复用:为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。优势:系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。多进程并发服务器多线程并发服务器。
2024-07-31 17:30:52
941
原创 天气预报的爬虫内容打印并存储用户操作
app=weather.today&cityNm=西安&appkey=73537&sign=9364942420f99e812362d80ac22493fc&format=json。该系统将基于目前比较流行的网络爬虫技术,对网站上的天气数据进行查询分析,最终使客户能够通过简单的操作,快速,准确的获取目标天气数据。主要包括两部分的功能,第一部分是天气数据查询,包括时间段数据查询,实时天气数据查询;(对得到的键值段进行分段)->页面打印并提供终端选择->对用户终端输入值进行文件保存(log)
2024-07-30 17:33:02
784
原创 网络传输层——UDP与TCP
OSI模型: open system interconnect 理论模型1977 国际标准化组织各种不同体系结构的计算机能在世界范围内互联成网。应用层:要传输的数据信息,如文件传输,电子邮件等表示层:数据加密,解密操作,压缩,解压缩会话层:建立数据传输通道传输层:传输的方式 UDP TCP 端口号网络层:实现数据路由 路由器 ip数据链路层:封装成帧,点对点通信(局域网内通信),差错检测 交换机 ARP。
2024-07-27 20:32:35
681
原创 项目总结(使用mplayer进行代码调控,完成基础用户调控)
方便使用并练习学习,用于回顾最近所学知识,我们将制作关于linux的mplayer的使用控制代码,以实现视频音频的打开播放,切换,播放模式选择,进度调控以及播放速度等应用。1.封装fork父子进程int play_music(int num),子进程用于mplayer播放视频以及结束消亡。二级页面细分,将一级页面对应所需要求进行展示,如:倍速选择等!主体函数内容流程: 利用标志位判断,预防一级二级菜单冲突。结束播放int play_music_stop()切歌int play_music_before()
2024-07-26 09:25:21
264
原创 信号,共享内存
进程间通信 -->信号通信应用:异步通信。中断进程间通信方式:管道:进程间数据通信信号: 进程间通信,用来发送通知(异步通信,中断)同步通信:发送端和接收端,使用同一时钟通信异步通信:发送端和接收端使用不同时钟通信同步通信:按照指定的顺序进行运行异步通信:一种随机事件,在程序编写阶段不能够确定事件发生的时机。
2024-07-23 20:17:31
825
原创 进程间的通信
1、古老的通信方式无名管道有名管道信号2、IPC对象通信 system v共享内存*消息队列信号量集3、socket通信网络通信管道-->无名管道、有名管道无名管道 -->pipe -->只能给有亲缘关系进程通信有名管道 -->fifo -->可以给任意两个进程通信1、管道是 半双工的工作模式2、所有的管道都是特殊的文件不支持定位操作。3、管道是特殊文件,读写使用文件IO。;使用框架:创建管道 --> 读写管道 --> 关闭管道。
2024-07-22 20:37:34
941
原创 线程属性以及线程控制(互斥与同步)
功能:将已经定义好的互斥锁初始化。参数:mutex 要初始化的互斥锁atrr 初始化的值,一般是NULL表示默认锁返回值:成功 0失败 非零信号量的类型 信号量的变量。
2024-07-20 19:47:31
794
原创 线程基础概念
线程是一个轻量级的进程每一个线程都属于一个进程进程是操作系统资源分配的最小单元线程是CPU任务调度的最小单元线程是一个任务执行的过程,包括创建、调度、消亡创建:线程空间位于进程空间内部进程:1.文本段2.数据段3.堆区进程中的每个线程,栈区是独立的,共享进程中的数据区和文本区,堆区。调度:宏观并行、微观串行与进程调度保持一致线程消亡:线程执行结束后,需要回收线程空间。
2024-07-20 10:17:48
910
原创 进程空间的回收以及执行当前进程空间内的另一进程
功能:让进程退出,并刷新缓存区参数:status:进程退出的状态返回值:缺省exit -> 刷新缓存区 -> atexit注册的退出函数 -> _exit。
2024-07-18 21:11:10
839
原创 多任务管理中的进程
进程创建后,操作系统为进程分配独立的(0 - 4G)的虚拟空间,内核只有一个。2.进程:是一个程序动态执行的过程,包括创建、调度、消亡(动态的)子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。正在执行,没有CPU任务调度执行的进程(只缺少cpu)父进程:创建新进程的进程称为新进程的父进程。克隆的进程称为子进程,原有的进程称为 父进程。1.程序:是一段存放在外存中代码的集合(静态的)功能:通过该函数可以从当前进程中克隆一个同名新进程。子进程:被创建的进程称为原进程的子进程。
2024-07-17 21:11:44
734
原创 阶段小结(minishell的设计与总结)
1.获取终端用户输入的命令,并输出相应的执行结果。touchcpmvlsls -als -lmkdirrmdirpwdcdlnln -sexit ---------->退出minishell2. 使用多文件方式实现,使用Makefile管理。
2024-07-16 20:51:48
333
原创 linux操作系统day2(io文件处理)
如果当前位置与 SEEK_SET重合 offset 不能是负的。从ptr所在本地内存中取出nmemb个大小为size的数据块写入到stream流对应。从指定的stream流对象中获取nmemeb个大小为size字节的数据块到ptr。SEEK_SET 文件的开头位置 offset 只能是正值。SEEK_CUR 文件的当前位置 offset 可正 可负。stream 要移动文件指针的目标文件流对象。写到终端屏幕显示,如果是fp的普通文件则会写入到文件中。要在文件内偏移的距离,单位字节。
2024-02-22 20:16:12
789
1
原创 linux操作系统day1(io文件处理)
文本文件,mp3,jpeg,png ,mp4,avi文件:一组相关数据的有序集合文件名:这组相关数据的一个名称。
2024-02-21 19:55:08
759
1
原创 嵌入式工程师day13day14(构造数据类型 )
struct 结构体名数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;..数据类型 变量名;数据类型 *指针变量名;
2024-01-29 17:26:46
396
原创 嵌入式工程师day11(指针基础进阶)
p = &a[0];p = a;数组的数组名a是指向数组第一个元素的一个指针常量a == &a[0]a 的类型可以理解为 int *有两种情况除外:1.sizeof运算时2.&运算符访问下标为n的数组元素的方式:清楚地址及指针指向地址及指针内容的定义三个输出分别为*p;p[i];*(p+i);的输出结果,结果相同。
2024-01-26 17:23:03
753
1
原创 指针,函数的习题(封装取两个数值的最大公约数和最小公倍数的函数(指针) )(求二维数组主对角线的最大值和辅对角线的最小值)(封装一个函数,求得输入的字符串中的大写,小写字母,数字以及空格)
代码思想:求最小公约数,实际上是求从1开始到输入的两个中比较小的数之间的所有数,是否能对俩数整除,能被整除则为公约数,由于是从小到大,当第一个符合的数就为最小的公约数;求最大公倍数,实际上是从输入的俩个数中的较大数到俩数乘积之间的数,对俩数求余,能整除的的数则为公倍数。
2024-01-26 09:48:12
678
1
原创 嵌入式工程师day7(数组下)
/没有给定初值的元素,值为0值('\0')strlen:获得字符串的长度(字符串开头到离开头最近的\0之 间的字符个数,不包含\0字符)C语言没有字符串类型,也无法定义字符串变量,只能通过字符型数组,每个元素存放一个字符,最终存放字符串。清楚sizeof的相应数据表示,上述表达式分别表示(从上到下):数组的总数,数组行个数,数组列个数。1.元素个数必须为常量或常量表达式,不能为变量或变量表达式。字符型数组所占字节 == 元素个数。
2024-01-22 19:57:43
795
原创 嵌入式工程师day6(数组上)
数据类型 数组名[元素个数];int a[5];注意:元素个数必须为常量或常量表达式,不能是变量或变量表达式int n = 5;int a[n];//错int a[n+2];//错int a[5];//对int a[2+3];//对。
2024-01-20 17:41:50
847
原创 奇数偶数判断,平年闰年判断以及三角形周长面积的计算(虚拟机上的简单应用题:基于c语言的嵌入式开发)
2.与此同时,在虚拟机上运行时也要编译才能运行。1.应用数学计算式要引用数学函数。
2024-01-19 10:12:23
1288
1
原创 嵌入式工程师day3(C语言基础2)
ab”‘a’与”a”的区别:‘a’:字符常量,只有一个字符a“a”:字符串常量,有俩个字符‘a’+‘\0‘例:“ab\0”有四个字符“ab\\\123ab"有七个字符。
2024-01-17 18:48:06
830
原创 嵌入式工程师day1(Linux基础和c语言基础)
Ubuntu,Redhat,Debian,CentOS,FreeBSD Linux操作系统(以Linux为内核的操作系统)
2024-01-15 19:08:58
1117
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人