- 博客(28)
- 收藏
- 关注
原创 双向链表相关
程序的设计:将现实中大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中,线性结构:元素之间一对一的关系(表(数组,链表),队列。散列存储(哈希存储):将数据元素的存储位置与关键码之间建立确定对。一组用来保存一种或者多种特定关系的数据的集合(组织和存储数据)链式存储:采用一组非连续的内存空间保存元素。图形结构:元素之间多对多的关系(网状结构)树型结构:元素之间一对多的关系(二叉树)数据的物理结构:数据的逻辑结构在计算机内存中的存储形式。数据的逻辑结构:数据元素与元素之间的关系。
2024-08-08 18:51:58
392
原创 基于Linux系统下的在线手机商城
随着网络的发展,电子商务的兴起和普及使得消费者越来越倾向于通过互联网购买商品和服务,越来越多的传统零售商和新兴企业转向在线销售以满足消费者的需求,个成功的在线商城项目背景包括对市场需求、竞争环境、技术和平台选择、商业模式和目标、以及用户体验和功能需求的全面理解和分析,越来越多的传统零售商和新兴企业转向在线销售以满足消费者的需求,所以有了在线商城项目。int prase_http_request(char *http_buff, HTTP_REQ_t *req):解析用户的命令。商品概述:数据库信息的导出。
2024-08-07 10:23:49
292
原创 数据库相关
create table if not exists 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);create table 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);4../configure // 生成makefile。2.tar -zxvf sqlite-autoconf-3080403源代码.tar.gz。UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值。
2024-08-02 20:06:05
286
原创 并发服务器
/增加非阻塞属性 //flag = flag & ~O_NONBLOCK;4.select只能工作在水平触发模式(低速模式)无法工作在边沿触发模式(高速模式)4.poll只能工作在水平触发模式(低速模式)无法工作在边沿触发模式(高速模式)2.select监听的文件描述符集合在用户层,需要应用层和内核层互相传递数据。3.epoll会直接获得产生事件的文件描述符的信息,而不需要遍历检测。nfds:监测的文件描述符上限值(最大文件描述符的值+1)
2024-07-31 20:07:40
257
原创 Linux下的网络通讯
2. 对于变长的包,还可以在包和包之间使用明确的分隔符,这个分隔符是由程序员自己来定的,只要保证分隔符不和正文冲突即可。(3)超时重传:当发送端发送的数据在网络中丢失时,在一定时间内没有收到接收端的ACK,则发送端会重新发送丢失数据。这样对方就可以控制发送数据的速度,从而达到流量控制,16bit,因而窗口最大65535.TCP协议是面向字节流的协议,接收方不知道消息的界限,不知道一次提取多少数据,这就造成了粘包问题。(1)滑动窗口:可以按照“窗口大小”, 一次发送多条后, 再等待应答。
2024-07-27 20:15:09
355
原创 线程相关的知识
线程是一个轻量级的进程 light process每一个线程都属于一个进程进程是操作系统资源分配的最小单元线程是CPU任务调度的最小单元线程是一个任务执行的过程,包括创建、调度、消亡创建:线程空间位于进程空间内部进程:1.文本段2.数据段3.堆区进程中的每个线程,栈区是独立的,共享进程中的数据区和文本区,堆区。调度:宏观并行、微观串行与进程调度保持一致线程消亡:线程执行结束后,需要回收线程空间。
2024-07-19 21:22:51
450
原创 Linux多进程相关(补充)
退出状态,终止的进程会通知父进程,自己使如何终止的。如果是正常结束(终止),则由exit传入的参数。如果是异常终止,则有内核通知异常终止原因的状态。任何情况下,父进程都能使用wait,waitpid获得这个状态,以及资源的回收。exit(1);功能:让进程退出,并刷新缓存区参数:status:进程退出的状态返回值:缺省return 当该关键字出现在main函数中时候可以结束进程如果在其他函数中则表示结束该函数。
2024-07-18 20:18:36
672
原创 LINUX多进程相关
1.程序:是一段存放在外存中代码的集合(静态的)2.进程:是一个程序动态执行的过程,包括创建、调度、消亡(动态的)正在执行的程序 ---进程 (动态)程序 ----加载到内存去运行--- 进程进程是 程序运行的实体。进程运行需要消耗两个主要资源:cpu+内存进程和程序的区别:1)程序是永存,进程是暂时的2)进程有程序状态的变化,程序没有3)进程可以并发,程序无并发4)进程与进程会存在竞争计算机的资源5)一个程序可以运行多次,变成多个进程。
2024-07-17 20:34:12
580
原创 Linux学习day2
写:size_t fwrite(const void *ptr, size_t size,size_t nmemb, FILE *stream);读:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);从指定的stream流对象中获取nmemeb个大小为size字节的数据块到ptr。SEEK_SET 文件的开头位置 offset 只能是正值。写到终端屏幕显示,如果是fp的普通文件则会写入到文件中。
2024-02-22 18:49:00
354
1
原创 linux 学习day1
p -- pipe -- 管道文件 --- 实现操作系统中 进程间的一些 信息交换(通信)fp --保存数据 --- fputc(ch,fp);往文件中,指定第n个字节后 插入一句话 ---- "i am xxx....\n"stdin FILE* 标准输入流 ---->键盘。l -- link -- 软连接文件 --- 类似windows的快捷方式。刷新指定的流文件 (刷新 ---写操作- 将缓存中的数据写到要达到的目标位置)
2024-02-21 19:53:32
355
原创 C语言学习day15
由于频繁申请和释放,导致连续的空间分散成一些小的碎片空间,当malloc超过碎片空间时,则无法获得该空间(空间不连续),将这样的空间称为内存碎片。3.malloc需要和free搭配使用,如果只有malloc没有free会内存泄露。练习:要求申请堆区空间,将"hello world"存放到堆区空间,完成打印。2.一个空间只能被free一次,多次free程序会崩溃。size:申请堆区空间的大小。1.free只能释放堆区空间。程序中malloc的空间没有被释放。返回获得的空间的首地址。内存溢出也称为内存越界。
2024-01-31 19:54:32
365
原创 C语言学习day14
内存对齐:char 按照1字节对齐short 按照2字节对齐int 按照4字节对齐double 按照4字节对齐结构体整体的大小必须为最大基本类型长度的整数倍。
2024-01-30 18:10:13
386
1
原创 C语言学习day13
struct 结构体名数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;..数据类型 变量名;数据类型 *指针变量名;
2024-01-29 18:42:29
347
原创 C语言学习day12
指针数组=====主要用来操作字符串数组,通过将指针数组的每个元素存放字符串的首地址实现对多个字符串的操作二维数组 =====主要用来存储字符串数组,通过每行存储一个字符串,多行存储多个字符串所组成的数组。
2024-01-27 18:47:46
422
1
原创 C语言学习day11
数组的组名a是指向数组第一个元素的指针常量a == &a[0];a的类型可以理解为int *(sizeof运算时和&运算时除外)
2024-01-26 18:56:12
386
1
原创 C语言学习day8
函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, ...)函数体;return 返回值;函数类型:函数运行结果的类型1.函数类型如果不写,默认为int类型2.函数返回值缺省,应该写void类型3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准。
2024-01-23 20:16:00
309
1
原创 C语言学习day2
1. 二进制、八进制、十六进制向十进制对应位*对应位的权值求和2.十进制向二进制、八进制、十六进制十进制除以进制数得到的余数逆序排列。
2024-01-16 19:12:17
1327
1
原创 C语言学习day1
1.普通用户 :权限会受限可以有多个,也可以一个没有,名字没有限制2.超级用户:权限不受限制有且只有一个,名字为 root。
2024-01-15 18:37:34
1603
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人