自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 framebuffer在Ubuntu上的操作

【代码】framebuffer在Ubuntu上的操作。

2024-09-11 21:05:18 567

原创 Frame Buffer

Frame buffer 是显卡存储的视频数据,在 Linux 系统中通常被抽象为 /dev/fbX 文件(X 表示不同的设备编号)。应用程序可以通过这个设备文件直接与显卡进行交互,读写像素数据以显示内容。

2024-09-10 20:41:58 522

原创 哈希表与算法时间复杂度

(Hash Table),它通过哈希函数将键值映射到特定的数组索引,从而实现高效的查找、插入和删除操作。其核心思想是将数据直接存储到具有固定大小的数组中,通过哈希函数计算出每个数据的存储位置。

2024-09-09 19:12:09 2541

原创 数据结构:二叉树

二叉树(binary tree)是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。每个节点都有两个引用(指针),分别指向左子节点(left-child node)和右子节点(right-child node),该节点被称为这两个子节点的父节点(parent node)。

2024-09-09 17:36:54 1037

原创 数据结构:栈和队列(Stack & Queue)

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队头(Front):允许删除的一端,又称队首。队尾(Rear):允许插入的一端。空队列:不包含任何元素的空表。假性溢出:如图d,队列出现“上溢出”,然而却又不是真正的溢出,所以是一种“假溢出”。

2024-09-06 20:31:44 653

原创 数据结构—内核链表

内核链表是一种在操作系统内核中广泛使用的数据结构,特别是在Linux内核中。它主要用于高效地管理和遍历内核中的对象,如进程、设备、文件等。每个链表节点都包含指向前一个节点和后一个节点的指针,这使得从任何节点出发都可以方便地遍历整个链表。内核链表的设计使其能够通用于不同类型的内核对象。通过在结构体中包含一个指向链表节点的指针(如struct list_head类型),任何结构体都可以轻松地加入到链表中,而无需修改链表本身的结构。

2024-09-05 21:35:45 680

原创 数据结构—双向链表

主要结构是由,这三个结构组成,通过prev找到前一个节点,next指向下一个节点。结构:节点(Node):每个节点包含三部分:数据(Data):存储节点的值。前指针(Prev):指向链表中前一个节点的指针。后指针(Next):指向链表中下一个节点的指针。在双向链表中同样可以实现单向链表中的头插,尾插,头删等操作。此外,如用到结构体,结构体可以整体赋值。特点:单向遍历:单向链表只能从头节点开始,按顺序向下遍历,直到链表的末尾。无法逆向遍历。

2024-09-04 20:30:50 1139

原创 数据结构—单向链表

*链表存储的数据的数据类型*//*链表的结点类型*///数据域//指针域:指向下一个结点/*链表的对象类型*///链表头结点地址int clen;//链表当前结点个数}Link_t;#endif。

2024-09-03 21:16:26 376

原创 数据库—专业储存大量数据

1、内存存数据:当程序运行结束,掉电,数据丢失。(数组、链表、变量等)2、硬盘存数据:程序运行结束,掉电,数据不丢失(1)文件:对数据管理(增删改查)效率低.(2)数据库:专业存储数据,可存大量数据。对数据管理效率高,使用方便。

2024-08-29 21:20:55 1959

原创 IO多路复用

epoll是Linux特有的I/O事件通知机制,它是基于事件驱动的方式来处理多个文件描述符的I/O操作。相比于传统的select和poll方法,epoll能够更高效地处理大量的并发连接,因为它在内核中使用了更高效的数据结构和算法。exceptfds:指向异常文件描述符集合的指针,如果不关心异常文件描述符,则传入NULL。writefds:指向可写文件描述符集合的指针,如果不关心可写文件描述符,则传入NULL。readfds:指向可读文件描述符集合的指针,如果不关心可读文件描述符,则传入NULL。

2024-08-28 20:15:52 1015

原创 实现并发网络服务器

1.单循环网络服务器 —— 同一时刻只能处理一个客户端任务2.并发服务器 —— 同一时刻能处理多个客户端任务。

2024-08-27 21:01:57 1149

原创 粘包,Telnet,SSH,Wireshark

原因:tcp为流式套接字,数据与数据间没有边界,导致多次数据粘到一起。解决:1.规定一些数据间的间隔符,"\aa","\r\n";2.可以指定要发送对象的数据长度。3.自己将数据打包。

2024-08-23 20:42:00 520

原创 udp recvfrom函数 tcp c/s模型

参数:ssize_t recvfrom(int sockfd, socket的fdvoid *buf, 保存数据的一块空间的地址size_t len, 这块空间的大小int flags, 0 默认的接收方式 --- 阻塞方式struct sockaddr *src_addr, 用来保存发送方的地址信息socklen_t *addrlen 表示发送方实际的地址信息大小返回值:成功 返回接收到的字节数失败 -1。

2024-08-22 22:13:33 731

原创 IP进程间的通信方式以及不同主机间的通信方式

1.是一块内核的预留空间2.避免了用户空间到内核空间的数据拷贝。

2024-08-21 20:11:31 436

原创 线程中的顺序问题,信号量和进程间的通信—管道

今天主要学习了线程中的顺序问题,信号量和进程间的通信—管道。

2024-08-16 20:58:44 544

原创 线程的结束 ,互斥锁,进程与线程

int count;int i = 0;++i;int i = 0;++i;if(ret!= 0)if(ret!未上锁。

2024-08-15 20:13:30 390

原创 wait函数,线程

今天主要对从昨天的进程进行了补充,学习了线程。

2024-08-14 20:08:36 1166

原创 fork函数补充,exec函数

今天对昨天的fork函数进行了补充,并且学习了exec函数。

2024-08-13 20:24:43 1968

原创 进程的生命周期,kill,fork函数,父子进程

在Linux系统中,kill命令用于向运行中的进程发送信号,默认发送的信号是终止信号,会请求进程退出。kill(杀)可能会引起误解,实际上发送的信号可能与杀死进程无关。我们最常使用到的kill命令为:kill PID前者为请求目标进程退出,后者为强制杀死目标进程。

2024-08-12 20:30:51 795

原创 时间函数,文件操作函数,Makefile

字符串处理中的link函数(误解)在C语言中,对于字符串处理,并没有直接名为link的标准函数。如果你看到或听到关于link函数用于字符串处理的描述,这很可能是一个误解或特定上下文中的自定义函数。例如,在某些情况下,可能会编写一个自定义的link函数,用于将两个字符串数组合并到一个新的字符串数组中,但这并不是C语言标准库的一部分。

2024-08-08 19:52:45 963

原创 文件IO函数,文件目录操作函数

今天主要对zuot学习函数进行了补充。

2024-08-08 09:02:54 1133

原创 文件IO,缓冲区

定义:缓冲区是一块连续的计算机内存区域,用于存储输入或输出的数据。当数据从一个地方传输到另一个地方时,它首先被放置在缓冲区中,然后再从缓冲区中取出或发送到目标位置。作用:减少访问延迟:通过减少对物理设备的直接访问,缓冲区可以减少数据传输的延迟。提高数据传输效率:由于数据可以批量处理,缓冲区可以提高数据传输的吞吐量。保护数据完整性:在数据传输过程中,缓冲区可以作为数据的临时存储区域,防止数据丢失或损坏。

2024-08-06 20:28:54 838 2

原创 文件操作函数

今天主要学习了Linux编程中文件的相关操作。

2024-08-05 20:41:37 697

原创 Linux系统下shell脚本的编写

C语言的学习告一段落了,今天开始了Linux系统编程Linux编程中主要要学习以下几点:1.shell脚本:做操作系统配置,要求能看懂并且写出一些简单的脚本2.文件:要对文件进行主要的读写操作3.进程:为了同时完成多个任务,运行起来的应用程序叫做进程4.网络:信息交换5.Html Db:数据库,查找文件学习方法:1.函数数量多,不用背,要会查man手册2.demo 要手敲几遍,自己查手册按照逻辑能够把代码敲出来3.不懂的及时问。

2024-08-03 18:45:25 736

原创 链表,typedef,位运算

一、什么是typedeftypedef是在C和C++编程语言中的一个关键字。作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了使代码方便阅读和理解。1、对于数据类型使用例如:以上就是给int起了一个新的名字NEW_INT,注意要加分号。当要定义int类型数据时就可以:此时NEW_INT num 等同于 int num。2、对于指针的使用例如以上就是给int *起了一个新的名字NEW_INT。可定义int类型指针变量如:PTRINT x;

2024-08-02 20:20:46 656

原创 结构体,用指针处理结构体.链表

今天主要学习了C语言的结构体与链表。

2024-08-01 19:36:01 889

原创 数组与指针,用指针实现函数

今天主要学习了数组与指针之间的联系。

2024-07-31 19:53:51 437

原创 const,万能指针,堆区

今天主要对于昨天学习的指针进行了加强与巩固学习了一些指针的新用处。

2024-07-30 19:30:22 659

原创 指针的使用

今天主要学习了C语言中的指针,其基本形式为:基类型 * 指针变量名。

2024-07-29 18:33:21 300

原创 标识符的作用域与可见性

一般在标识符前加g,比如:int g_i,若未初始化则一定为零。1.局部作用域:放在花括号以内,只作用于花括号内部,局部作用域内部的变量称为局部变量, 在栈区内,形参也在栈区内。b.static让变量只在本.c中有用,在全局变量和函数前加static代表只能在本.c中使用。用法:register int i:把变量放进CPU中是一种建议,而非命令,取地址i将会引发编译报错。3.在两个或两个具有包含关系的不同作用域中,外层标识符在内层不可见。2.在不同(没有包含关系)的作用域中,定义同名标识符互不影响。

2024-07-28 20:26:23 430

原创 主调函数和被调函数

今天主要对昨天学习的函数的设计进行了巩固强化,把以前学过的东西用主调函数和被调函数的方式写出来。

2024-07-26 20:44:38 574

原创 被调函数与主调函数,函数的递归调用

今天主要学习了如何设计函数对以前的问题求解,C语言程序内存区域,函数的递归调用。

2024-07-25 20:12:39 449

原创 二维数组,函数的开端

今天主要学习了二维数组,函数的开端。

2024-07-24 20:31:01 202

原创 字符串数组,puts , gets , fgets , strcpy , strcat , strcmp 二分法

今天主要学习了字符串数组,并且学习了puts , gets , fgets , strcpy , strcat , strcmp。并且新学了一个寻找元素的方法--二分法。

2024-07-23 19:32:48 429

原创 数组,三种排序方法

int a[10]int:类型名 a:数组名 [常量表达式]1.不能是void型。2.个数>=1,至少有一个3.定义出现的[ ]不是运算符4.不能写成 a = i (a为常量,不可做左值)5.数组的数组名代表数组中首元素的地址eg:printf("%d\n",a)时将数组的第一个值的地址以十进制的方式打印出来。6.数组的越界访问:int a[10];

2024-07-22 21:56:18 474

原创 循环与如何跳出循环

今天主要学习了循环语句中的 go to 语句,while语句,do...while语句,for语句,break语句。

2024-07-20 19:57:11 447

原创 选择结构程序设计,if else

今天主要学习了选择结构程序设计。

2024-07-19 20:39:48 333

原创 格式的输入与输出函数

今天主要学习了格式的输入与输出函数。

2024-07-18 19:45:00 643

原创 变量赋值,混合运算,混合赋值

今天主要学习了变量赋值,混合运算,混合赋值。

2024-07-17 18:47:20 461

原创 整型数,浮点数,字符型

signed] long [int] 有符号长整型 32。[signed] short [int] 有符号短整型 16。[signed] long long [int] 有符号双长整型 32。指数形式:如123e3/123E3 代表123*10**3 e后面必须为整数。

2024-07-16 18:08:13 788

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除