自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 210511阶段四 切片 迭代 生成器

目录一、学习的知识点用户自定义函数切片迭代生成器生成器 yiled二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点用户自定义函数# 无参函数def func(): print("hello")# 带参函数def func( str ): print( str )# 不定长参数 加了 * 号的参数会以 元组(tuple) 的形式导入,存放所有未命名的变量参数def func(argl, *vartuple) print(vartuple)func(70,80,9

2021-05-12 22:56:53 130

原创 21.5.8阶段四数据类型

目录一、学习的知识点模块下载方法一 通过dos窗口方法二方法三 文件安装二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点模块下载方法一 通过dos窗口默认安装在 python exe的目录pip 命令查看模块方法二方法三 文件安装到官网下载 .whl 文件,在dos窗口 进入 文件所在的路径 通过pip install …whl安装二、上课没有听懂或者没有理解的地方三、当天学习的收获...

2021-05-09 15:33:04 232 2

原创 210506阶段四Python基本语法

目录一、学习的知识点python和C/C++区别应用领域PythonPython语法变量输入函数成员运算符条件语句循环语句二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点python和C/C++区别C 执行效率高、代码小 语法简单,面向过程 开发周期长,系统级 底层C++ 面向对象,库丰富 封装性、移植性好, 适用于开发大型项目,Python 语法简单 高效 模块多应用领域数据爬取 数据处理 数据显示 数据分析 人工智能Python解释型语言编写完代码得到 .

2021-05-07 21:05:24 201 1

原创 2021-04-24

目录一、学习的知识点二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点客户端和服务器的开发环境在PPT上表示出来表达时面向观众,声音大点介绍亮点的时候,对比一下sqlite和redis二、上课没有听懂或者没有理解的地方无三、当天学习的收获上台没那么紧张了...

2021-04-24 20:34:23 66

原创 Linux GDB调试

目录一、学习的知识点1.面试的问题1.1 基础问题:数组和链表的区别,进程间通信方式1.2 项目问题:如数据库怎么设计、遇到什么问题 如何解决1.3 扩展问题:如接入十万个客户端服务器还能运行嘛吗?2.数据包设计二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1.面试的问题1.1 基础问题:数组和链表的区别,进程间通信方式1.2 项目问题:如数据库怎么设计、遇到什么问题 如何解决1.3 扩展问题:如接入十万个客户端服务器还能运行嘛吗?2.数据包设计有定长包和不定长包数据包

2021-04-11 17:55:35 70

原创 ubuntu配置GDB

1.sudo apt-get install build-essential在Linux操作系统上面开发程序, 光有了gcc 是不行的它还需要一个 build-essential软件包作用是提供编译程序必须软件包的列表信息进行了更新,再编译竟然通过了也就是说 编译程序有了这个软件包它才知道 头文件在哪 才知道库函数在哪还会下载依赖的软件包 最后才组成一个开发环境当然 build-essential包 安装时 需要的依赖包 有些你用不上总之,要在终端执行 sudo apt-get insta

2021-03-31 18:57:04 695

原创 210326阶段三人脸识别

一、学习的知识点1.人脸检测,使用级联分类器读取haarcascade_frontalface_default.xml 文件检测照片里面有无脸的信息2.人脸训练/学习:保存一张人脸不同角度的照片,使用LBPH人脸模型提取脸的信息/特征存为xml或yml文件。cv::Ptr<face::LBPHFaceRecognizer> model; //cv::ptr 类似于指针 LBPHFaceRecognizer人脸模型 可以用来训练或者识别 LBPH局部二进制编码直方图void MainWin

2021-03-27 15:25:24 129

原创 Windows下环境变量的作用及配置环境变量

1.环境变量的作用配置应用程序环境变量的作用是:当程序运行时,提供路径供程序查找所需要的库依赖。exe文件链接动态库时,首先会到exe的目录下找库,然后到环境变量找库,如果找不到库,就会报错:缺少库,程序无法运行。2.软件的环境变量配置2.1鼠标悬浮在“此电脑”图标,右键,点击“属性”,或者在“控制面板”点击“系统”,2.2在“系统”界面,点击“高级系统设置”2.3点击“高级”页面,再点击“环境变量”2.4在 用户变量 列表或者 系统变量列表点击“新建”,用户变量只对当前用户有效,系统变量

2021-03-25 17:09:44 1717 1

原创 210322阶段三QT事件循环及opencv图像处理

目录一、学习的知识点1.QT事件循环机制1.1QT是事件驱动的。QT将系统产生的信号(软件中断)转换成QT事件,并且将事件封装成类,所有的事件类都是QEvent派生的,事件的产生和处理就是QT程序的主轴,伴随着整个程序的运行周期。1.2QT事件由QObject接收,QObject是所有QT类的基类,是QT对象模型的核心。QObject类的三大核心功能之一就是 事件处理。QObject通过event函数调用获取事件,通过继承QObject并重定义event函数实现自定义事件的处理1.3QT事件处理的流程:事件

2021-03-22 20:06:23 160

原创 210319opencv图像的存储与显示

目录一、学习的知识点1.一个像素点由RGB三基色组成,位深度为24的图片,基色的位数比为8:8:8,所以一个像素点占三个字节2.opencv的Mat类存放图片的格式是BGR格式,需要转换成RGB格式2.1方法一:使用opencv的函数2.2方法二:使用QT的函数3.将Mat类的数据存放到数组,并显示二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1.一个像素点由RGB三基色组成,位深度为24的图片,基色的位数比为8:8:8,所以一个像素点占三个字节2.opencv的Mat类存放图片

2021-03-20 13:35:53 77

原创 210317阶段三opencv

目录一、学习的知识点1.strcpy和memcpy的区别2.中文字符编码3.opencv二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1.strcpy和memcpy的区别复制的内容不同,strcpy只能复制字符串,memcpy可以赋值内存的任意内容,如字符数组,结构体、类等,memcpy的用途更广。复制的方法不同,strcpy不指定复制的长度,复制时从 源地址开始,遇到字符串结束符 ‘\0’自动结束复制,因此strcpy最适合用于复制字符串,memcpy需要指定复制的字节数,

2021-03-18 17:18:54 68

原创 210314阶段三VS使用Linux 的sqlite3 API

目录一、学习的知识点1.聊天系统框架2.VS使用Linux sqlite3 API2.1 在项目->属性-> 链接器->命令行 处添加 -lsqlite32.2 在 项目->属性-> 链接器->输入 处添加 sqlite3 库依赖二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1.聊天系统框架2.VS使用Linux sqlite3 API2.1 在项目->属性-> 链接器->命令行 处添加 -lsqlite32.

2021-03-15 19:02:16 146 1

原创 210312阶段三通过sqlite3源码安装sqlite3

目录一、学习的知识点1操作系统1.1PC1.2移动端2数据库2.1Linux下安装sqlite3处理器二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1操作系统1.1PCwindows linux mac1.2移动端基于windows Wp wm 塞班基于Linux Android基于Mac iOS2数据库sqlite3 是数据库管理系统包含 数据库管理系统(DBMS)相当于仓管员 数据库文件(xxx.db)相当于仓库通过 DBMS操作文件A

2021-03-13 19:01:58 126

原创 210307共享内存的读写

目录一、学习的知识点systemVPOSIX(可移植操作系统接口)是一种标准共享内存的读写二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点systemVmsgget 消息队列semget 信号量 P-1 V+1 操作 基于内核 用于进程间同步shmget共享内存POSIX(可移植操作系统接口)是一种标准mq_open 消息队列sem_init sem_post sem_wait 信号量 基于内存 用于线程间同步pthread_mutex_init

2021-03-08 22:55:01 187

原创 210305设计共享内存

目录一、学习的知识点共享内存的设计共享内存 的头部信息共享内存的属性共享内存类共享内存类的构造函数二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点共享内存的作用:进程间传递数据数据量多时 起缓冲作用 应设计为先进先出共享内存的设计头部信息放到共享内存中 是为了方便 另一个进程 对 共享内存中数据的读写共享内存 的头部信息typedef struct shmhead{ int blkssize;//每块多大 int blocks;//一共有多少块 int w

2021-03-06 15:12:27 97

原创 020303阶段三 I/O复用 select和epoll的文件描述符管理

目录一、学习的知识点1 五种 I/O1.1 阻塞式I/O1.2 非阻塞式I/O1.3 I/O复用(select 和pool)1.3.1 select 文件描述符的管理select 缺点epoll1.4 信号驱动I/O1.5 异步I/O二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点man 2 属于系统调用read 系统调用 先到内核空间(操作系统层)取数据 ,存放到 buff(应用层 用户空间)1 五种 I/O1.1 阻塞式I/O通过read系统调用 到内核空间读取数据到用户

2021-03-04 14:20:07 127 1

原创 210228Linux 条件变量 线程池

目录一、学习的知识点实际应用把服务器分为两个进程1.前置服务器1.1方案1 来一个客户端开一个线程1.2方案2 线程池2.后置服务器二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点实际应用把服务器分为两个进程1.前置服务器接收客户端的消息 -》 写到共享内存发送消息给后置服务器 -》通知后置服务器取数据1.1方案1 来一个客户端开一个线程如果一个任务处理一个线程,一个线程处理完一个任务就结束,那么频繁接入任务就要频繁创建线程,比较耗时间.优点:简单粗暴、奢侈缺点:奢

2021-03-01 15:09:39 76

原创 210226阶段三 systemV信号量

目录一、学习的知识点服务器前置服务器(接入服务器)后置服务器(业务处理服务器)systemV信号量二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点线程属于POSIX线程互斥锁、信号量属于POSIX信号量 在进程内部使用systemV信号量: semget shmget 在进程间使用通过ipcs查看的都是systemV系列信号量都是对一个数字进行加一减一的操作,信号量为 0 时,若进行减一,则阻塞在此,systemV系列的P操作对信号量减1,V操作对信号量加1服务器

2021-02-27 13:56:10 71

原创 程序、进程、线程

目录程序空间分配进程内存分配程序和进程的区别程序运行成为进程的过程进程和线程线程进程和线程的区别参考材料程序空间分配站在高级语言的角度,根据APUE(Advanced Programming in the UNIX Environment UNIX环境高级编程),一个程序分为如下段:text:代码段,可执行指令的集合,在内存中被映射为只读,存放代码和常量data:初始化后数据的集合,存放在memory的可写空间内,存放已初始化的全局变量、静态变量、局部静态变量。bss:全局未初始化变量、静态未初

2021-02-26 00:00:37 88

原创 210224阶段三信号量、互斥锁

目录一、学习的知识点PCB和进程PCB包括进程线程进程和线程信号量和互斥锁应用场景二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点ls -a 显示隐藏文件cd ~ 回到home目录每个文件夹都有两个隐藏目录 一个是 ./ 一个是 …/ 加深了我对Linux 万物文件 的理解(普通文件、目录、设备、套接字)PCB和进程进程与进程控制块(PCB process control block)是一一对应的。系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述

2021-02-25 22:05:20 143

原创 210221阶段三线程、信号量、互斥锁

目录一、学习的知识点程序如何运行起来CPU时间片轮转进程切换开销大吗线程线程函数库pthread_create函数线程同步信号量sem_init函数sem_wait函数sem_post函数互斥量生产者消费者模型生产者消费者二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点双击运行一个可执行文件时创建一个进程。向操作系统申请一个进程,对32位系统来说 一个进程内存最大占 4G 2^32把数据从硬盘 “拷贝/加载” 到进程的空间。数据从一个存储器/硬盘(慢) 到 另外一个存储器/

2021-02-21 20:46:06 69

原创 210213阶段三回顾

目录一、学习的知识点1. 云服务器2. FTP服务端3. 连接不上服务器怎么排除问题4.服务器如何判断收到消息后要执行什么业务二、上课没有听懂或者没有理解的地方一、学习的知识点Linux 系统编程:文件读写(IO read write) IPC(Inter process communication 进程间通信):信号 管道 消息队列 共享内存Linux 网络编程: socket C/S结构 client server B/S结构 web serverOpenCV1. 云服务器ip分

2021-02-19 22:52:36 73

原创 动态数组vector

实现的机制第一次pushback一个int型数据时,开一个int型数据的空间。第二次pushback时,直接开辟两个int型数据大小的空间,第一次pushback的数据存到第二次的空间中,然后释放掉第一次开辟的空间。当pushback时数组的空间不够时,自动开辟两倍于原来大小的空间,保存原来的数据后,释放掉原来开辟的空间也就是说,每开辟一次空间,数组的地址就变化一次为什么这样做动态数据具备数组的属性,可以通过下标访问,内存的连续性可以通过下标访问。容量能做到动态扩展。...

2021-02-11 17:19:15 63

原创 210130阶段三socket服务器

目录一、学习的知识点服务器基于socket二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点共享内存速度在数据读取上速度最快每个上网的电脑都有唯一的IP地址一个电脑的进程有唯一的端口号(应用层的),进程不跑就没有端口号。IP端口最多65536个,80端口是网页端口。IP分为外网IP和内网IP网关是路由器的IP地址DNS域名解析 服务器,将域名如 baidu.com 解析成 点分十进制 的格式实时通信,socket通信协议 套接字,还有http ftp ssh通信协议,

2021-01-31 18:39:26 91

原创 210129阶段三调试、进程间通信-共享内存

目录一、学习的知识点1 回顾1.1 回顾调试2 共享内存2.1 函数二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1 回顾1.1 回顾消息队列可以接收指定类型的消息,而不全是根据消息的先后系统默认最大消息队列个数 16个 msgmni 可修改msgmax 一个消息里面消息的内容最大不超过8198msgmnb 一个队列总的消息内容的长度 16384消息队列的删除 msgctl(msgid,IPC_RMID,null);typedef struct MSG_BUF{

2021-01-29 23:37:19 149

原创 210127阶段三进程间通信-消息队列

目录一、学习的知识点1 回顾1.11.22 进程间通信2.1进程间通信的目的2.2 进程间通信2.2.1 消息队列二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1 回顾1.1三阶段学:系统编程 包括 进程、IPC(进程间通信,如信号、管道、消息队列、共享内存、信号量)网络编程 包括 socket:TCP/IP,线程:多线程、线程池OpenCV1.2Linux 一切皆文件,通过文件描述符对文件读写。 是操作系统操作文件或设备的指针虚拟机 桥接模式可以联网 N

2021-01-28 19:29:08 101

原创 210124阶段三信号屏蔽,管道通信

目录一、学习的知识点1屏蔽信号2管道2.1匿名管道2.2命名管道二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点64个信号源 前32个信号 每个信号都有对应的函数指针(回调函数),从信号到函数指针中间还有64个开关(mask)(屏蔽信号),开关默认允许,只有允许信号才能触发函数指针屏蔽信号之前还有pending(未决寄存器)。发送一个信号,对应的pending为1.pending用户只能查看,屏蔽信号才能被用户操作。函数指针被执行后,pending自动清零。被阻塞则为1。信号

2021-01-26 11:58:44 96

原创 210122阶段三进程间信号

目录一、学习的知识点进程间通信 信号二、上课没有听懂或者没有理解的地方三、当天学习的收获四、作业的思路、不会的地方五、其他需要反馈的问题六、心得体会一、学习的知识点程序组成 RO段(常量) RW段(全局变量 静态对象 编译完要占空间) BSS/ZI段进程组成包括了程序的部分 还有 堆区(自己开辟 程序员管 “屯屯屯”) 栈区(局部变量 被回收) 共享内存区进程间通信 信号二、上课没有听懂或者没有理解的地方三、当天学习的收获四、作业的思路、不会的地方五、其他需要反馈的问题六、心得体会..

2021-01-22 20:24:56 121 1

原创 210120 阶段三 fork与阻塞函数

目录一、学习的知识点1.1僵尸状态1.2孤儿1.3如何避免僵尸进程1.3.1 wait1.3.2 waitpid2 execlp守护进程二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1.1僵尸状态一个子进程结束运行时,父进程还存在子进程进入僵尸状态,因为进程结束的返回码还需要给父进程 exit(0)子进程不再活跃(不执行逻辑),但是资源无法释放(CPU/内存/数据)以上总结说明 程序操作的时候不希望出现 僵尸状态的情况。1.2孤儿父进程先于子进程结束父进程没了P

2021-01-20 23:07:17 176

原创 Linux umask 文件默认权限

一、umask是什么登录系统以后创建的一个文件会有一个默认权限。umask的作用就是设置用户创建文件或者目录的默认权限。umask设置的是权限的补码,我们常用的chmod设置的是文件权限码。一般在/etc/profile、home/.profile设置umask值二、umask的作用umask的作用是用来控制默认权限的。首先了解一下基本权限2.1Linux文件权限rwx文件可以查看文件内容(可读)可以修改文件(可写)可以吧文件启动为一个运行的程序(可执行)目录

2021-01-20 16:32:52 451

原创 210108阶段三进程管理,多进程编程

目录一、学习的知识点多进程程序和进程的区别所有的操作系统都支持运行多任务进程控制块PCB多进程编程二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点多进程操作系统中有很多运行的程序 如office WPS qq。通过网络下载并安装得到.exe文件程序和进程的区别程序时静态的,以文件的形式存在程序是动态的,有生命周期操作系统由很多个进程组成每个进程要想运行起来,都要被操作系统管理,每个进程都有自己的进程编号PIDPID 保存了进程重要信息的结构体所有的操作系统都支

2021-01-09 10:55:04 173

原创 210106阶段三 文件I/O

目录一、学习的知识点Linux 文件I/OWindows和Linux对文件管理的差异文件读写open系统调用write系统调用read系统调用lseek系统调用创建目录mkdir系统调用二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点Linux 文件I/OC语言提供的标准库实现文件读写 fopen fclose fwritelinux 的系统调用 open close write标准库函数是所有能够支持C语言的操作系统 提供的统一的读写文件的API函数,可以实现代码的移植L

2021-01-07 21:31:09 135

原创 201209阶段二FFmpeg转码

目录一、学习的知识点二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点二、上课没有听懂或者没有理解的地方无三、当天学习的收获转码部分的时间基转换

2020-12-10 23:18:58 64

原创 201205阶段二FFmpeg编码

目录一、学习的知识点FFMpeg编码流程二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点FFMpeg编码流程注册猜编码器格式创建视频流找到对应编码器打开编码输出文件写入文件头////////////////接收一帧解码信息帧循环编码打包写入视频封装容器当中写入尾二、上课没有听懂或者没有理解的地方无三、当天学习的收获视频的编码流程...

2020-12-08 22:05:02 110

原创 201203阶段二FFMPEG图片解码及线程

目录一、学习的知识点线程QT线程核心 run方法FFMPEG图片格式转换并存储在图片缓冲区把解码得到的视频帧转化为 RGB格式二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点线程线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。一个进程中可以并发多个线程,每条线程并行执行不同的任务。QT线程核心 run方法使用线程类的start方法可以调用run,run执行的同时 还可以执行其他操作。FFMPEG图片格式转换并存储在图片缓冲

2020-12-04 22:08:28 323

原创 201128阶段二MVC框架模式、FFmpeg

目录一、学习的知识点一)1单例类的实现一)2MVC框架模式一)3 FFmpeg 处理音视频的框架二、遇到的问题三、当天学习的收获一、学习的知识点设计模式:比框架更小的元素 小技巧,对具体问题提出解决方案, 一个类只有一个实例。如 单例类框架模式:一个框架可以含有一个或多个设计模式 大智慧,对软件设计进行分工,如 MVC一)1单例类的实现构造函数私有化私有的静态类对象指针,静态成员要在函数外初始化公有的静态的返回值为类对象指针的接口,如果类对象指针为NULL,则执行构造函数,返回静态

2020-11-29 23:20:19 204

原创 201126阶段二单例数据库及MVC设计模式

目录一、学习的知识点一)1 单例模式一)2 MVC设计模式一)2.1优点一)2.1缺点二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点一)1 单例模式#ifndef SIGNALDATABASE_H#define SIGNALDATABASE_H#include <iostream>#include <QString>#include <QDebug>#include "sqlite3.h"#include <QObject&

2020-11-27 18:48:22 95

原创 201124阶段二sqlite3 API

目录一).1一).2 sqlite常用API函数一).1程序用到数据库时,头文件需要加 #include <sqlite3.h>,报错没有找到头文件,报错原因是系统没有函数库,输入以下指令下载函数库程序用到数据库时, 编译时需要加 -lsqlite3 链接数据库一).2 sqlite常用API函数int sqlite3_open(const char *,sqlite3 **db);打开或创建数据库,参数1:数据库文件,参数2:sqlite3数据指针;返回错误代码。

2020-11-25 19:43:07 82

原创 201119阶段二sqlite3

目录一、学习的知识点1 数据库的字段类型2 sql常用操作二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点1 数据库的字段类型char(6):访问效率更高,占用空间更大varchar(6):访问效率低,空间为存入的数据长度加1,内存利用率更高integer:可以存放整型数据,可以实现自增,自增关键字:autoincrement;id integer autoincrement,对应的values填nulltext:类似于string2 sql常用操作createins

2020-11-20 13:57:50 90

原创 201117阶段二SQLite数据库

目录一、学习的知识点一)1数据库特点一)2什么是sql语言一)3数据模型组成关系数据模型ER实体关系模型步骤数据库设计的三大范式数据库基本操作二、上课没有听懂或者没有理解的地方三、当天学习的收获一、学习的知识点一)1数据库特点开源轻量,不需要搭载复杂的环境一)2什么是sql语言结构化的查询语言,一)3数据模型组成数据结构(对象类型的集合)数据操作(增删改查)数据完整性约束(唯一性 完整性)关系数据模型用二维表的形式表示实体与实体间联系的数据模型属性元祖/记录:一行数据

2020-11-18 22:16:49 188

空空如也

空空如也

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

TA关注的人

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