- 博客(37)
- 收藏
- 关注
原创 在 VSCode 上使用 Go 语言
Golang保证了静态编译语言的安全和性能(C/C++Golang又保证了动态语言的高效开发和维护(PythonGolang相对于ClangGolang引入包的概念,,不能单独存在。Golang引入垃圾回收机制(GCGolanggoroutine轻量级线程、channel管道。Golangslice切片、defer延迟执行。
2023-07-06 18:59:04 188
原创 Go 语言从入门到精通(超全超详细整理)
Go 语言语法基础,基本数据类型,多种内置数据类型详解:指针、结构体、数组、切片、字符串、channel、map、函数、方法、接口,异常处理,多线程开发技巧,类面向对象程序设计,包管理等七个章节你都掌握了吗?
2023-07-06 18:50:02 2216
原创 如何理解C/C++中的多级指针与数组中的top-level-const与low-level-const
如何理解C/C++中的玄学多级指针和数组的声明,以及顶级 const 和低级 const 的区别。
2023-06-15 11:45:14 121
原创 SQL 语法 - 入门数据库、数据表创建删除与增删改查操作
本篇介绍 SQL 通用语法,首先注意 SQL 不区分大小写,包括字符串不区分大小写。其次 SQL 具有多版本语法,略有不同,请注意区分。
2023-05-17 23:21:45 351
原创 Sqlite 与 C/C++ 开发连接方法
本篇介绍 Windows Sqlite 与 C/C++ 开发的连接方法。本章节不教 SQL 语法。注重简短介绍如何实现 C/C++ 与 Sqlite 之间的连接部分代码,使用命令行编译可以更好理解其原理。
2023-05-17 23:16:19 962
原创 Mysql 与 C/C++ 开发连接方法
本篇介绍 Windows Mysql 与 C/C++ 开发的连接方法。本章节不教 SQL 语法。注重简短介绍如何实现 C/C++ 与 Mysql 之间的连接部分代码,使用命令行编译可以更好理解其原理。
2023-05-17 23:06:28 221
原创 Linux 高并发学习笔记 - 守护进程
守护进程(demon process、精灵进程)是一个没有控制终端的进程,在启动时即脱离控制终端而使用户无法直接观测到它的存在。守护进程进程名通常以 d 结尾,用于服务进程,可以长时间运行。进程、进程组、会话的关系与权限与相关函数。
2023-02-23 20:23:06 73
原创 Linux 高并发学习笔记 - 查看 IPC 设备
此处 IPC 设备特指 System V 的进程间通信设备,包括:消息队列(Message Queue)、共享内存(Shared Memory)、信号量(Semaphore Array)。ipcs 命令查看 IPC 设备,ipcrm 命令移除 IPC 设备。
2023-02-23 20:12:24 235
原创 Linux 高并发学习笔记 - 内存映射
* `内存映射`(`Memory Mapping`)技术是开辟一块与映射`磁盘`空间等大的内存空间,操作`映射内存`即可自动同步映射`磁盘`空间。值得注意的是,在`Linux`内存映射实现中,`映射内存`必须是页(即`4096Bytes`)的倍数,不足`4096Bytes`的倍数向上取整倍。* 在`Linux`中,`映射内存`位于`虚拟内存空间`的`共享区`。同时,在`内存映射`时,无需对`内核`介入与数据缓存而直接写入。因此,`内存映射`不仅操作更为方便,在大数据规模时效率上也有一定优势。* `内存映
2023-02-23 20:06:10 98
原创 Linux 高并发学习笔记 - 共享内存
* `共享内存`(`Shared Memory`)与`内存映射`技术相仿。但不同的是,`内存映射`建立了与`磁盘`空间的同步关系(不考虑`匿名内存映射`),这意味着`内存映射`同样需要操作`磁盘`;而`共享内存`在`物理内存`中开辟空间,为不同进程建立相同的`虚拟内存`映射,无需操作`磁盘`,效率更高。* `共享内存`必须是页(即`4096Bytes`)的倍数,不足`4096Bytes`的倍数向上取整倍。* `共享内存`位于`虚拟内存空间`的`共享区`。
2023-02-23 20:00:29 85
原创 Linux 高并发学习笔记 - 信号通信、发送信号、捕捉信号、计时器信号
信号是Linux进程间通信最古老的方式之一,是事件发生时的通知机制,有时也称为软件中断,一种异步通信模式。相比于管道的主动获取,信号由接收进程被动获取,可以中断进程用于完成一个突发事件。信号具有简单高优先级无法携带大量信息的特点。信号产生未决递达。信号未决时被阻塞在内核区,等待信号阻塞解除;信号递达,被进程处理或忽略。信号实时信号系统信号。实时信号不具有特定意义,可以由用户指定;系统信号通常具有特定含义。信号递达时,进程会中断当前的程序,转而处理与信号相关联的程序,当信号处理完后继续执行当前进程。
2023-02-19 11:25:59 144
原创 Linux 高并发学习笔记 - 有名管道实现进程间通信
有名管道FIFO命名管道)以一个文件实体的形式存在于磁盘中,但有名管道的大小始终为0 Bytes。FIFO文件被打开,将在内存中生成管道缓冲区,所有管道流经过该缓冲区,但始终不经过磁盘。磁盘中的FIFO文件仅用于定位有名管道,不存储任何数据。与管道不同的,有名管道可用于实现无公共祖先的进程间通信。与管道具有类似的结构和原理。
2023-02-19 11:22:26 179
原创 Linux 高并发学习笔记 - 管道(匿名管道)实现进程间通信
管道文件位于内核区,是Linux进程间通信最古老的方式之一,用于实现拥有公共祖先的进程间通信。管道Pipe匿名管道)是一个拥有一个读端与一个写端的队列数据结构(其底层实际为循环队列),具有先入先出的特点,管道内的数据以流的形式存在,称为管道流。管道具有内存限制,可以认为是管道通信模式的中转站与缓冲区。管道是一个半双工的工作模式,但通常以单工模式通信。单工:仅可用于单向数据传输。双工:允许双向数据传输。半双工:允许双向数据传输,但不可以同时进行。虽然管道只有一个读端与一个写端。
2023-02-19 11:17:44 149
原创 Linux 高并发学习笔记 - 进程通信概述
Linux 高并发学习笔记 - 笔记索引进程是一个独立的资源分配单元,不同进程间的资源是分别独立的。每个进程拥有独立的内存映射表,一个进程无法直接访问另一个进程的数据。进程通信IPC)用于完成进程间信息交互和状态传递,从而实现数据传输、资源共享、信号传递、调试控制等功能。匿名管道有名管道信号消息队列内存映射共享内存信号量。
2023-02-19 11:13:21 64
原创 Linux 高并发学习笔记 - 虚拟内存地址、段页式内存管理
虚拟内存管理、为什么需要虚拟内存、内存分段、内存分页、多级页表、段页式内存管理、快表、Linux中的内存管理。
2023-02-19 11:06:49 309
原创 Linux 高并发学习笔记 - wait 函数回收子进程,信号回收子进程,解决僵尸进程
wait 函数回收子进程。什么是孤儿进程,什么是僵尸进程,Linux如何处理僵尸进程。wait函数与waitpid函数详解。信号回收子进程,异步回收子进程。
2023-02-12 20:47:42 190
原创 Linux 高并发学习笔记 - exec 函数簇重载进程
Linux 高并发学习笔记 - exec 函数簇重载进程。execl,execlp,execle,execv,execvp,execvpe。
2023-02-12 20:45:01 102
原创 Linux 高并发学习笔记 - 查看与设置进程资源限制,查看进程状态列表,监视进程状态动态变化,杀死进程,查看与设置进程号
进程状态常用命令:ulimit 查看与设置进程资源限制,ps 查看进程状态列表,top 监视进程状态动态变化,kill 杀死进程,getpid函数查看进程号,getppid函数查看父进程,getpgid函数查看进程组编号,setgpid函数涉资进程组编号。
2023-02-11 15:04:11 222
原创 Linux 高并发学习笔记 - 进程概述,并发与并行,五态模型
进程概述,什么是进程,进程与程序代码的区别,单道程序与多道程序的区别,时间片,并行与并发的区别,进程状态转换的五态模型、三态模型
2023-02-10 20:29:18 88
原创 Linux 高并发学习笔记 - 笔记索引
Linux 高并发学习笔记。这个专栏主要讲了 Linux 高并发网络编程,主要结构:入门,多进程,多线程,网络编程,项目实战的路线。
2023-02-10 13:37:15 142
原创 Linux 高并发学习笔记 - Linux 操作文件描述符
Linux 操作文件描述符,Linux 操作进程已经打开的文件,而不关闭文件重新打开文件。dup函数、dup2函数拷贝复制文件描述符,fcntl函数读取和设置文件描述符flags标志。
2023-02-09 16:49:59 111
原创 Linux 高并发学习笔记 - Linux 目录操作函数
Linux 目录操作函数。chdir函数切换工作目录,getcwd函数查看工作目录,mkdir函数创建目录,rmdir函数与remove函数移除目录或文件,rename函数重命名或移动目录或文件。opendir函数,closedir函数,readdir函数,seekdir函数实现目录遍历。
2023-02-09 16:37:00 93
原创 Linux 高并发学习笔记 - Linux 文件属性函数
Linux 文件属性函数, Linux 中一切皆文件,你同样可以用下面这些函数操作目录等特殊文件。stat函数查看文件属性,access函数判断当前进程的文件访问权限,chmod函数更改文件属性,chown函数更改文件所有者。stat函数与lstat函数的区别。
2023-02-09 16:25:33 76
原创 Linux 高并发学习笔记 - Linux 文件操作函数
Linux 文件操作函数,open函数打开文件,close函数关闭文件,read函数读取文件,write函数写入文件,seek重定位文件指针,mode文件常见模式,文件属性修改中UMASK的作用
2023-02-09 16:16:42 78
原创 Linux 高并发学习笔记 - Linux 文件操作基本原理
Linux 文件操作基本原理,标准C库与Linux系统文件IO对比,虚拟地址空间,文件描述符,PCB进程控制块。
2023-02-09 16:01:40 102
原创 Linux 高并发学习笔记 - GDB 基本使用
GDB是GNU提供的调试工具,是最原始的调试工具。本章节将简单介绍GDB的使用,满足基本需求。GDB调试,GDB生成可调试文件,GDB设置断点与监视,GDB运行调试程序。
2023-02-09 15:54:59 87
原创 Linux 高并发学习笔记 - Makefile 基本使用
Makefile是一个用于便捷一键编译的工具。通过配置Makefile文件,使用make工具,可以迅速完成对于复杂项目的编译任务,不用每次键入如前文所述的多条Shell命令完成编译。本章节将简单介绍Makefile的使用,满足基本需求。关于MakefileGNU make 官方文档GNU Make 使用手册(中译版)_ZS_Wang_Blogs的博客-CSDN博客。
2023-02-09 15:51:11 123
原创 Linux 高并发学习笔记 - 静态库与动态库制作与评价
Linux C/C++ 静态库制作,动态库制作,静态库原理,动态库原理,对比动态库与静态库优缺点
2023-02-09 15:47:50 96
原创 Linux 高并发学习笔记 - Linux 开发环境搭建
Linux开发环境搭配,VMvare搭建开发环境,安装Ubuntu虚拟机,XFTP与XSHELL远程操作虚拟机
2023-02-09 15:32:09 89
原创 python变量命名规则与规范(约定)
引子前些日子,大大的一位友友问了我一个问题,表示了对命名规范的不解。确实如此关于命名规范有一套相对严谨而复杂的理论,大大在此特就python的变量(以及函数和对象)命名规则与规范进行讲述。规则规则很简单,我在此也就写在前面,并且一笔带过,相信在看的朋友也不会有疑问。python变量必须由数字、字母、下划线(0-9a-zA-Z_)组成,严格区分大小写。规范性质与意义在此为了分清规则与规范的区别,特别需要指出规则的性质。规则简洁明了,命名正确与否由编译器检查,也就是说,如果命名不符合
2022-07-16 00:25:59 2268
原创 python参数传递,如何让可变参数当作不可变参数传递
引子众所周知,python中参数传递方式有很多,这些在其他文章中都有所详细陈述,在此不做赘述。(如果你需要了解python参数传递的基本知识,请绕路,相关文章在CSDN很丰富。)但是小编遇到一个问题便是可变参数的传递无法被当作不可变参数处理(python3.8),而我们常常需要这么做。这个问题的解决方案在全站没有找到解决方案,小编特写此文为有需要的人士介绍。错误示例def demo(x): _x = x _x['python'] = 'v3.8' print('_x ='
2022-01-30 22:07:24 1205
原创 pynput 键盘鼠标事件抑制(拦截输出)
pynput 键盘鼠标事件抑制前言最近想用pynput做一个键盘映射,但是遇到的了一些问题,键盘映射有时需要抑制原输出。本人在CSDN找了很久,但是发现没有相关的文章。在查找了官方文档,并做了一些测试后,想写一篇文章来扩充一下。那我们直接开始pynput的官方文档中有提到,Listener类的参数中有一项suppress(抑制)。也就是说pynput提供的抑制必须在启动监听的时候设置。from pynput import keyboarddef on_press(key): pas
2021-08-15 01:10:54 2628 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人