自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 《windows核心编程》第4章 进程

进程内核对象的生命周期一定比进程生命周期长,进程没有退出代表进程的进程内核对象一定不会被销毁。每个可执行文件或者DLL文件被装入到某个进程的地址空间,都会有一个唯一的实例句柄,来表示装入后的可执行文件或者DLL,此时把这个可执行文件或者DLL叫做进程地址空间中的一个模块。进程是静态的,进程中真正执行代码的是线程,所以进程必须有一个主线程primarythread。把进程比喻成工厂,把工厂中的人比作线程,工厂给人提供资源(场地、加工设备、原材料),主线程是随进程产生(工厂产生的时候同时产生它的厂长)。

2023-11-02 09:09:21 333

原创 《windows核心编程》第3章 内核对象

每个进程创建的内核对象是一个索引,通过这个索引会在每个进程的内核对象表中找到这个内核对象的内存块,同一个内核对象在不同进程中的句柄是不一样的内核对象用一个句柄来标识。内核对象的内存块位于操作系统的内核空间,应用程序不能直接操作内核对象,需要系统给定的函数来操作内核对象的结构:公用部分(安全描述符、计数)和个性部分windows还没人登录的时候就会创建一个session0会话,windows服务程序在session0中。每当有一个用户登录就会创建一个session。

2023-10-22 17:34:21 397

原创 《windows核心编程》第2章 UNICODE字符

(1) Windows的控制台根据系统非UNICODE编码及位置的设置,控制台在输出中文时默认是GBK编码,控制台输出UTF8字符会变成乱码。采用宽字符输出,这样就避免了控制台字符集的问题(2) 控制台宽字符显示有个必要的条件:控制台的字体应当支持宽字符。将控制台的代码页修改为437(OEM-United States),默认的Lucida Console字体支持宽字符,使用_setmode来设置标准输出为_O_U16TEXT。

2023-10-21 16:16:11 215

原创 《windows核心编程》第1章 错误处理

这是windows的API函数,函数是用来将错误编码转换成错误信息字符串的在UNICODE编码下被定义为FormatMessageW,我们常用FormatMessageWFormatMessageW 函数 (winbase.h) - Win32 apps | Microsoft Learn。

2023-10-21 01:02:09 341

原创 C4D中的python脚本

关于C4D与Python那些事_哔哩哔哩_bilibili。

2022-12-13 18:47:34 3315

原创 QT无边框窗口

实现三个虚函数算法相关鼠标相对于左上角的 z 是不变的添加 QPoint 头文件因为作用域的原因,我们把 z 定义为类的成员变量。现在就可以正常的拖动窗口了。

2022-11-27 22:34:38 4415

原创 Linux网络编程11——简单的web服务器

02-web大练习的概述_bilibili_哔哩哔哩_bilibili实现一个简单的 web 服务器 myhttpd 能够给浏览器提供服务,供用户借助浏览器访问服务器主机中的文件。

2022-11-17 16:02:10 733

原创 Linux网络编程10——libevent库

开源。精简。跨平台(Windows、 Linux、 maxos、unix)。专注于网络诵信。

2022-11-11 18:04:51 1581

原创 Linux网络编程9——UDP 和 本地/网络套接字

面向连接的,可靠数据包传输。对于不稳定的网络层,采取完全弥补的通信方式。丢包重传。优点:稳定 (数据流量稳定、速度稳定、顺序)缺点:传输速度慢。相率低。开销大使用场景:数据的完整型要求较高,不追求效率。大数据传输、文件传输无连接的,不可靠的数据报传递。对于不稳定的网络层,采取完全不弥补的通信方式。默认还原网络状况优点:传输速度块。相率高。开销小缺点:不稳定 (数据流量。速度。顺序)使用场景:对时效性要求较高场合。稳定性其次。游戏、视频会议、视频电话。

2022-11-08 11:09:27 898

原创 Linux网络编程8——线程池模型

多线程服务器,每次客户端发过来信息服务端就会创建一个线程,处理完了再销毁线程开销有点大。

2022-11-07 22:54:17 309

原创 Linux网络编程7——epoll反应堆模型

1、epoll 反应堆模型是从 libevent 库里面抽取的核心代码epoll ET 边沿触发 event = EPOLLIN | EPOLLETepoll LT 水平触发epoll 非阻塞IO 边沿触发 while(read()) fcntl(O_NONBLOCK)2、epoll 反应堆模型 = epoll ET 模式 + 非阻塞 + void *ptr。

2022-09-21 23:20:44 452

原创 五子棋AI(C++、QT)

学习视频链接五子棋-3_bilibili_哔哩哔哩_bilibili。

2022-08-20 13:01:55 1644 3

原创 Linux网络编程6——poll和epoll

select 出来的比较早,其缺点是监听散乱的文件描述符效率会低一点。所以使用 poll,但是 poll 效率没改进多少,所以又改进为 epoll。

2022-08-05 08:35:07 2046

原创 Linux网络编程5——多路IO转接服务器

学习视频链接黑马程序员-Linux网络编程_哔哩哔哩_bilibilihttps。

2022-07-25 15:47:09 377

原创 飞机大战游戏(C++、QT)

教学视频链接Qt案例_飞机大战_哔哩哔哩_bilibilihttps。

2022-07-24 17:56:41 1297

原创 Linux网络编程4——网络编程基础2

表示初始状态。该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。SYN_RCVD该状态表示接收到SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂。表示连接已经建立。。称之为半连接或半关闭状态。....

2022-07-22 21:44:18 288

原创 Linux网络编程3——多进/线程并发服务器

视频链接黑马程序员-Linux网络编程_哔哩哔哩_bilibilihttpsp=37。

2022-07-21 17:53:08 512

原创 Dijkstra算法最短路径(C++控制台)

根据传入的景点之间的路费邻接矩阵,找到两点之间费用最少的路径

2022-07-09 09:51:06 707

原创 五子棋游戏(C++控制台)

一、控制台版本1.1 代码1.2 实现效果二、存储功能的实现三、简化下棋的过程

2022-06-20 12:43:44 5154

原创 Linux学习日记22——vscode和cmake

一、安装相应的软件1.1 安装cmake1.2 安装vscode二、g++编译相关参数2.1 -g2.2 -O[n]2.3-l 和 -L2.4 -I2.5 警告信息2.6 设置编译标准和输出文件名2.7 查看手册三、编译C++项目3.1 打开vscode3.2 编写项目3.3 编译项目四、CMake4.1 简介4.2 语法特性介绍4.3 重要指令和 CMake 常用变量4.4 CMake 编译工程4.5 实战五、使用vscode进行完整项目开发...

2022-06-12 11:28:32 2074

原创 Linux网络编程2——socket编程

类似于管道文件。一个文件描述符指向一个套接字(套接字内部由内核提供两个缓冲区实现)在通信过程中,套接字一定是成对出现的(Linux主机上有,客户端主机上也有)1、函数为使网络程序具有可移植性,使同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和本地字节序的转换htonl本地字节序——>网络字节序(32位,主要转换的是IP)htons本地字节序——>网络字节序(16位,主要转换的是port)ntohl2、对上面函数进行封装。......

2022-05-13 17:01:44 1093

原创 Linux网络编程1——网络编程基础

目录一、协议二、分层模型结构2.1 OSI七层模型2.2 TCP/IP 4层模型三、网络传输数据封装3.1 物理层3.2 数据链路层3.3 网络层3.4 传输层四、以太网帧协议4.1 ARP协议4.2以太网帧协议4.3 mac地址五、 IP协议5.1 版本5.2 TTL5.3 IP字节数5.4 发送的内容六、IP、端口号6.1 IP地址6.2 端口号6.3 ip+端口号七、UDP八、CS/BS模型一、协.

2022-05-12 17:35:04 868

原创 Linux学习日记21——shell

学习视频链接【尚硅谷】Shell脚本从入门到实战_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1hW41167NW?p=12&spm_id_from=333.1007.top_right_bar_window_history.content.click目录一、shell概述二、shell解析器2.1 Linux提供的Shell解析器2.2 默认使用的解析器三、shell脚本入门3.1 脚本格式3.2 第一个shell

2022-04-28 20:19:55 1848

原创 Linux学习日记20——线程同步

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=167目录一、同步概念1.1 线程同步1.2 线程互斥1.3 数据混乱原因二、互斥量mutex2.1 基本概念2.2 出现的问题2.3 使用流程2.4 代码2.5互斥锁的使用技巧三、读写锁3.1 读写锁特性(操作系统会讲)3.2 主要函数3.3 代码四、死锁五、条件产量5.

2022-04-28 11:57:55 433

原创 Linux学习日记19——线程

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=151&spm_id_from=333.1007.top_right_bar_window_history.content.click目录一、线程概念1.1 什么是线程1.2 查看火狐浏览器的线程1.3 Linux内核线程实现原理1.4 线程共享资源1.5线程非共享资源1.6 线程优、缺点二、进程..

2022-04-26 13:20:01 1374

原创 Linux学习日记18——守护进程

学习视频链接北京黑马C++32期就业班课程(第一部分)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1uk4y1m7Eu?p=756目录一、守护进程1.1 简介1.2 特点总结二、进程组和会话2.1 进程组2.2 会话2.3 可以使用 ps ajx 来查看进程组 ID 和会话 ID2.4 进程组和会话的关系图三、创建守护进程模型3.1 流程3.2 代码一、守护进程1.1 简介Daemon(精灵

2022-04-25 20:12:10 589

原创 Linux学习日记17——信号

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=129目录一、信号的概念1.1 信号共性1.2 信号的机制1.3 与信号相关的事件和状态1.4 信号的编号1.5 信号四要素1.6 kill函数/命令产生信号一、信号的概念1.1 信号共性简单、不能携带大量信息、满足条件才能发送1.2 信号的机制1、A 给 B 发送信号,B 收到.

2022-04-21 20:50:05 1554

原创 Linux学习日记16——进程间通讯

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=100目录一、IPC 方法1.1 进程间通信1.2 常用的进程间通信方式二、管道2.1 Linux下创建管道2.2 管道的概念2.3 创建管道2.4 父子进程通信2.5兄弟进程通信2.6 多个写端一个读端测试2.7 管道缓冲区大小2.8 管道的优劣三、FIFO3.1简介3...

2022-04-14 10:17:08 923

原创 Linux学习日记15——exec函数族、回收子进程

一、exec函数族1.1 函数族作用1、简介fork 创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种 exec 函数以执行另一个程序。当进程调用一种 exec 函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用 exec 并不创建新进程,所以调用 exec 前后该进程的 id 并未改变。将当前进程的 .text、.data 替换为所要加载的程序的 .text、.data,然后让进程从新的 .text 第一条指令..

2022-04-12 10:11:34 3505

原创 Linux学习日记14——进程

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=76目录一、进程和程序1.1 区别1.2 并发1.3单道程序设计1.4 多道程序设计二、虚拟内存和物理内存映射关系2.1 PCB简单了解2.2MMU完成虚拟内存和物理内存映射一、进程和程序1.1 区别程序占用磁盘空间程序运行起来就成了进程,占用 CPU、内存等系统资源1.2 并..

2022-04-09 09:59:33 1192

原创 Linux学习日记13——目录操作

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=65&spm_id_from=pageDriver目录一、getcwd 和 chdir 函数1.1 getcwd函数1.2chdir 函数1.3测试案例二、文件和目录权限2.1 vim查看目录2.2 目录权限和文件权限区别三、opendir、readdir、closedir函数3.1open...

2022-04-06 10:43:56 2832

原创 Linux学习日记12——文件存储 / 文件操作

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=62&spm_id_from=pageDriver目录一、inode1.1 简介1.2 查看文件信息1.3 内部存储示意图二、stat 和 lstat 函数2.1 简介2.2 代码2.3 判断文件属性2.4 lstat2.5获取文件权限三、access、chmod、truncate函数.

2022-04-04 18:37:23 1412

原创 Linux学习日记11——fcntl、lseek、传入传出参数

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=58&spm_id_from=pageDriver一、fcntl 函数1.1 作用改变一个已经打开的文件的访问控制属性重点掌握两个参数的使用,F_GETFL 和 F_SETFL1.2 查看函数介绍1、man fcntl2、fcntlint flags = fcntl(fd, F_GETFL

2022-04-03 20:47:00 577

原创 Linux学习日记10——阻塞和非阻塞

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=55&spm_id_from=pageDriver目录一、阻塞、非阻塞概念二、测试阻塞和非阻塞2.1 研究设备的阻塞和非阻塞2.2 第一段代码测试阻塞2.3第二段代码测试非阻塞2.4第二段代码的基础上增加超时解决非阻塞三、总结一、阻塞、非阻塞概念1、读常规文件是不会阻塞的,不管读多少字节...

2022-04-02 13:34:54 1334

原创 Linux学习日记9——文件描述符

学习视频链接黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click一、PCB进程控制块1、write 完成了把数据从用户区送到内核区2、PCB 进程控制块本质是一个结构体,其中有一个成员是指针,这个指针指向文件描述符表,表里面存放的是文件描述符。

2022-03-24 09:41:07 876

原创 Linux学习日记8——文件IO函数

学习视频链接:黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=52&spm_id_from=pageDriver目录一、系统调用(内核提供的函数)二、open / close 函数2.1 linux 下查看 open 命令2.2 函数原型2.3 操作2.4O_CREAT2.5O_TRUNC2.6 常见错误三、read / write 函数3.1 函..

2022-03-22 15:18:40 2933

原创 Linux学习日记7——GDB调试

黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click目录一、C程序代码二、GDB调试2.1 编译文件2.2 进入GDB调试2.3 GDB中打印源码2.4 设置断点2.5运行程序2.6 继续执行2.7 查看变量值2.8 继..

2022-03-20 11:19:50 3021

原创 Linux学习日记6——数据段合并

学习视频链接:黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=35&spm_id_from=pageDriver一、数据在内存中的位置1.1 名词解释:user 用户内存空间kernel 内核内存空间.txt 代码段.rodata 只读函数段.data 数据段.bss 存放程序中未初始化的或者初始值为 0 的全局变量heap:堆(自下往上存储)...

2022-03-19 20:07:41 439

原创 Linux学习日记5——静态库和共享库

学习视频链接:黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=28「操作系统」编译,链接,装载_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1xr4y1A7Vm?spm_id_from=333.337.header_right.fav_list.click说明:文章中的一部分文件创建涉及到上一个文章一、动态库和静态库1.1 简介

2022-03-19 18:54:57 1316

原创 Linux学习日记4——ftp、lftp、nfs

学习视频链接linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV19s411T7gz?spm_id_from=333.1007.top_right_bar_window_history.content.click目录一、ftp 服务器二、lftp 服务器2.1 lftp 简介2.2 主要指令2.3 操作三、nfs服务器3.1 简介3.2 代码一、ftp 服务器1、创建目录:mkdir ftp.

2022-03-16 13:47:11 2372

C/C++ QT DUP 网络报文本地多用户通讯

使用 C/C++ QT 开发的一款本地 UDP 通信软件,用于学习 QT 网络文本格式传输 和 UDP 流传输,另外涉及到通信协议的一些内容

2022-10-29

QT开发的一款的文本编辑器

QT开发的一款的文本编辑器

2022-09-22

一款基于Qt实现的翻金币

含有音效处理,翻金币逻辑,逐帧动画,自定义按钮

2022-08-27

一款Qt制作的聊天室项目

linux上Qt开发的聊天室项目,基于CS架构,可以实现多人聊天的功能

2022-07-19

根据视频制作的一个Qt学生成绩管理系统,在linux环境下运用了sqlite3数据库实现的这个,目前没有测试windows平台的

根据视频制作的一个Qt学生成绩管理系统,在linux环境下运用了sqlite3数据库实现的这个,目前没有测试windows平台的

2022-07-18

一款Qt制作的四则运算器

根据视频 https://www.bilibili.com/video/BV1FL4y157Y6?spm_id_from=333.999.0.0 制作的一款 Qt 四则运算器,可以进行加减乘除等功能

2022-07-14

一款Qt制作的音乐播放器

可以读取目标文件夹中的 .mp3 后缀名的文件,然后在播放器上可以实现音乐切换,音乐播放暂停,音乐播放结束后停下来了,这部分因为我能力有限,不能做出循环播放或者跳转到下一个音乐的效果

2022-07-10

空空如也

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

TA关注的人

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