- 博客(77)
- 收藏
- 关注
原创 SSH连接SFTP传输:如何使用libssh库在windows环境下进行(文件、文件夹)传输到远端服务器
SSH连接SFTP传输:如何使用libssh库在windows环境下进行(文件、文件夹)传输到远端服务器:配置环境,cmake编译libssh,如何使用生成的dll与lib文件,配置lib 方法一,配置lib 方法二,配置dll方法一 将dll配置进入环境变量,配置dll方法二 在编译过后将dll直接与可执行文件.exe文件放在同一目录下,传输文件、文件夹代码(适配windows)
2024-04-01 08:42:13
1826
原创 SSH连接SFTP传输:如何使用libssh库在Linux环境下进行(文件、文件夹)传输到远端服务器
SSH连接SFTP传输:如何使用libssh库在Linux环境下进行(文件、文件夹)传输到远端服务器:建立SSH会话并连接远端服务器;SSH身份验证;密码验证;密钥验证;SFTP子系统构建;传输普通文件;递归传输文件夹
2024-03-28 08:25:24
1984
原创 CPU独占内核运行方式实现,并指定线程到特定CPU上执行
操作系统实现 CPU 独占内核运行方式,确保进程具有高优先级和独占 CPU 运行的能力。这样可以提高系统的稳定性、安全性和效率。如果想让特定进程或线程独占某一或某些CPU,我们需要做三件事:1.隔离CPU,避免其它线程run在被隔离的CPU上2.绑定所有的interrupts(中断)到非隔离的CPU上,避免被隔离的CPU收到interrupt3.把特定的 线程/进程 绑定到某一被隔离的CPU上
2024-03-11 08:46:05
3068
原创 【数据链路层】网络基础 -- MAC帧协议与ARP协议
数据链路层、认识以太网、以太网帧格式(MAC帧)、认识MAC地址、对比理解MAC地址、IP地址、认识MTU、MTU对IP协议的影响、MTU对UDP协议的影响、MTU对于TCP协议的影响、再谈局域网转发原理(基于协议)、ARP协议、ARP协议的作用、ARP协议的工作流程、ARP数据报的格式
2023-09-21 16:35:01
1776
32
原创 【网络层】网络基础 -- IP协议
IP、协议头格式、网段划分、特殊的IP地址、IP地址的数量限制、私有IP地址和公网IP地址、分片与组装、如何分片与组装?
2023-09-07 08:51:53
1667
42
原创 【传输层】TCP -- 三次握手四次挥手 | 可靠性与提高性能策略
超时重传机制、连接管理机制、三次握手、四次挥手、滑动窗口、拥塞控制、延迟应答、捎带应答、面向字节流、粘包问题、TCP异常情况、TCP小结、基于TCP应用层协议、理解 listen第二个参数
2023-09-04 09:18:44
3947
84
原创 【传输层】网络基础 -- UDP协议 | TCP协议
再谈端口号,端口号范围划分,netstat,pidof,UDP,UDP的特点,面向数据报,UDP的缓冲区,基于UDP的应用层协议,TCP,认识TCP协议的报头,理解封装解包,理解可靠性,TCP工作模式,16位窗口大小,6位标志位:URG、ACK、PSH、RST、SYN、FIN
2023-08-31 13:00:20
750
33
原创 【应用层】网络基础 -- HTTPS协议
HTTPS 协议原理:为什么要加密:常见的加密方式:对称加密、非对称加密、数据摘要&&数据指纹、HTTPS 的工作过程探究:方案1-只使用对称加密、方案2-只使用非对称加密、方案3-双方都使用非对称加密、方案4-非对称加密+对称加密、中间人攻击-针对上面的场景、CA认证、理解数据签名、方案5-非对称加密+对称加密+证书认证
2023-08-28 10:25:26
1558
37
原创 【应用层】网络基础 -- HTTP协议
再谈协议、HTTP协议、认识URL、urlencode和urldecode、HTTP协议格式、HTTP的方法、HTTP的状态码、HTTP常见Header、HTTP周边会话保持
2023-08-24 12:03:49
2047
46
原创 【Linux网络】网络编程套接字 -- 基于socket实现一个简单UDP网络程序
认识端口号、网络字节序、处理字节序函数 htonl、htons、ntohl、ntohs、socket:socket编程接口、sockaddr结构、结尾实现UDP程序的socket接口使用解析、socket、处理 IP 地址的函数、初始化sockaddr_in、bind、recvfrom、sendto、实现一个简单的UDP网络程序、封装服务器相关代码、封装客户端相关代码
2023-08-21 09:55:21
1930
39
原创 【Linux网络】网络基础 -- 初识协议 | 网络传输流程 | IP地址与MAC地址
认识 "协议":思考: 只要通信的两台主机, 约定好协议就可以了么?协议分层、OSI七层模型、TCP/IP五层(或四层)模型、网络传输基本流程、先谈局域网、网络传输流程图:数据包封装和分用、网络中的地址管理、认识IP地址、认识MAC地址
2023-08-17 10:34:26
718
28
原创 【Linux】简单线程池的设计与实现 -- 单例模式
线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。需要大量的线程来完成任务,且完成任务的时间比较短。WEB服务器完成网页请求这样的任务,使用线程池技术是非常合适的。
2023-08-14 10:42:02
1277
23
原创 【Linux】线程同步 -- 条件变量 | 生产者消费者模型 | 自旋锁 |读写锁
初识生产者消费者模型、同步、条件变量、初步使用、POSIX信号量、其他常见的各种锁、自旋锁、读写锁
2023-08-02 10:57:45
2378
63
原创 【Linux】线程互斥 -- 互斥锁 | 死锁 | 线程安全
互斥锁、互斥量mutex、锁原理解析、可重入VS线程安全、STL中的容器是否是线程安全的?、死锁
2023-07-30 11:35:59
1088
29
原创 已解决:多线程环境中,新线程在使用cout函数打印输出到显示器出现数据混乱的情况
最近学习Linux多线程的时候,创建新线程后使用cout打印输出到显示器上面的内容老是不对齐,数据混乱,搞得我强迫症都犯了。那么有什么方法呢?本文已解决
2023-07-28 11:30:47
2593
13
原创 【Linux】详解线程控制 -- 线程用法 | 线程等待 | 线程ID及地址空间布局
本文主要讲述线程控制:Pthread线程库,线程使用,线程等待,线程退出返回值的用处,C++11的多线程,线程ID及地址空间布局,线程局部存储,分离线程
2023-07-26 11:41:52
1015
23
原创 【Linux】 由“进程”过渡到“线程” -- 什么是线程(thread)?
由进程过渡到线程,一字之差进程与线程的区别是什么?什么叫线程?什么叫进程?如何创建线程?线程相对于进程又有哪些优缺点?
2023-07-23 06:30:00
1100
18
原创 【Linux】进程信号 -- 信号保存与递达 | 信号捕捉 | 僵尸进程的信号处理方法
信号的保存与信号的递达处理:信号集操作函数、信号捕捉流程(陷入内核操作)、可重入函数、volatile、SIGCHID信号关于僵尸进程处理
2023-07-20 11:07:01
3019
53
原创 【Linux】进程信号 -- 信号产生 | 系统调用、硬件、软件的信号发送
关于信号发送的问题:上面所说的所有信号产生,最终都要有OS来进行执行,为什么?OS是进程的管理者,也只有OS有权利去操作信号的处理是否是立即处理的?在合适的时候信号如果不是被立即处理,那么信号是否需要暂时被进程记录下来?记录在哪里最合适呢?是的,保存在PCB一个进程在没有收到信号的时候,能否能知道,自己应该对合法信号作何处理呢?我们应该知道,比如红灯快要亮起,但还没有,此时我们知不知道红灯亮起的时候该怎么办?答案是知道。
2023-07-18 10:07:41
4301
43
原创 【Linux】进程间通信 -- 信号量
假如我们将一份共享资源(电影院)分成几份,进程(人),访问共享资源的子部分(电影的座位),我们不能直接去访问这些资源(不能不买票随便坐),信号量(电影票),每个进程先申请信号量,如果申请成功了,就相当于预定这部分资源(买到票有座位),申请失败就不允许访问这部分资源(没买票到不允许看电影)。所有的进程在访问公共资源之前,都必须先申请sem信号量→必须先申请sem信号量的前提,是所有进程必须先得看到同一个信号量→信号量本身就是公共资源→信号量是不是也要保证自己的安全呢?为什么要让不同的进程看到同一份资源呢?
2023-07-16 15:12:27
894
14
原创 【Linux】进程间通信 -- system V共享内存
共享内存的原理以及共享内存的用法,案例实现共享内存通信:1.使用shmget生成共享内存⒉.使用ftok使得进程能看到同一内存块3.模拟创建共享内存查看key值与shmid值、再谈key、IPC资源4.shmctl对共享内存进行控制5.shmat将共享内存段连接到进程地址空间6.shmdt将共享内存段与当前进程脱离7.创建共享内存通信-读取端8.创建共享内存通信-写入端、共享内存的优缺点、共享内存的内核结构
2023-07-13 09:05:21
939
18
原创 【Linux】进程间通信 -- 命名管道 | mkfifo调用
同是管道通信,命名管道与匿名管道有什么区别呢?本文通过建立一个命名管道通信带你了解什么是命名管道
2023-07-10 11:54:09
1236
19
原创 【Linux】进程间通信 -- 匿名管道 | pipe系统调用
什么是通信?为什么要有通信?如何实现?管道通信、匿名管道、pipe系统调用、读写特征、管道的特征
2023-07-08 09:24:16
1047
6
原创 【Linux】如何将自定义源文件打包并生成动态库
动态库打包、动态库链接OS方法:1.增加环境变量方法2.配置.conf文件3.创建一个软连接在当前目录4.创建一个软连接在系统库目录。静态库如何加载、动态库如何加载
2023-07-06 11:24:31
518
5
原创 【Linux】如何将自定义源文件打包并生成静态库
自定义实现一个静态库,从源文件的书写,再到静态库打包,以及作为使用者如何使用静态库,另外—种使用静态库的方法(安装库到本地)
2023-07-04 08:58:00
1189
8
原创 【Linux】什么是文件系统及inode?如何创建软硬链接?软硬链接有什么作用?
关于文件系统以及inode,什么是软硬链接,以及如何创建软硬链接,软硬链接有什么作用
2023-07-02 09:40:03
6097
19
原创 【Linux】文件基础IO操作:C语言接口 | 系统调用接口 | 重定向
简述:重修C语言文件知识、Linux文件知识、标记位传参、文件的系统调用、理解什么是文件、文件fd的分配规则、重定向、c语言文件层面的缓冲区知识
2023-06-29 09:20:36
1343
13
原创 【Linux】详解进程控制 ( 再谈进程退出 | 程序替换exec*类型函数 )
再谈进程退出、进程程序替换、程序替换原理有哪些替换函数、execl、execlp、execv、execvp、execle、execve
2023-06-27 10:18:38
751
11
原创 【Linux】详解进程控制 ( fork函数 | 写时拷贝 | 进程退出 | 进程等待 )
fork函数、初识fork返回值问题、fork常规用法、写时拷贝、进程退出、进程退出码、进程退出场景、进程如何退出、进程等待、僵尸进程、进程等待的方法
2023-06-25 09:12:04
568
12
原创 【Linux】程序地址空间?进程地址空间
你之前在语言阶段学习的内存地址空间真的准确么?本文让你重新认识地址空间进程地址空间:为什么要存在虚拟地址空间?重新理解地址空间
2023-06-22 10:37:25
1300
10
原创 【Linux】详解环境变量与命名行参数
环境变量:了解PATH、什么是环境变量?如何使用环境变量命名行参数:argc与argv、env、environ
2023-06-15 11:13:53
2227
12
原创 万字详解普遍操作系统进程七态与Linux进程七态
作为一个称职的系统管理员,为了更熟悉进程的管理流程,我们必须要知道进程的不同状态所对应的意义。普遍操作系统的概念:就绪状态、运行状态、等待状态、阻塞状态、挂起状态、暂停状态、终止状态Linux下的进程状态:R(running)运行状态、s(sleeping)可中断睡眠状态、T(stopped)停止状态、t (tracing stop)跟踪停止、D(disk sleep)不间断睡民状杰Z(zombie)僵尸状态、x (dead)死亡状态
2023-06-09 12:13:02
2301
22
原创 【Linux】什么是进程(process)?
了解什么是进程?进程与程序概念描述进程-PCB、Windows进程与Linux进程、Linux进程操作子进程父进程、创建进程fork的使用
2023-06-06 10:42:02
1728
14
原创 作为C/C++程序员你可以不使用但你必须会的Linux调试器-gdb(GNU Debugger)
C/C++程序员的开发工作大多集中在Linux环境下,那么在Linux环境中的调试技巧就非常重要了,而且有些面试官也喜欢考察gdb这种不是特别好用但又表现你的Linux基础的小工具
2023-05-27 11:40:11
842
14
原创 C++三大特性—多态 “虚函数与动态绑定”
多态的定义及实现、虚函数重写、动态绑定、override和final (C++11)、重载、覆盖(重写)、隐藏(重定义)的对比、成员函数与继承、派生类中的虚函数虚函数与默认实参、如何回避虚函数的机制
2023-05-21 18:51:59
2331
16
原创 超详细的Linux环境下使用git上传代码教程(gitee版)
git各种操作总结:超详细的在linux环境下使用git创建本地及远程仓库,上传文件,删除文件教程,一看就懂
2023-05-16 19:27:42
4596
6
原创 C++三大特性—继承“复杂的菱形继承及菱形虚拟继承”
C++的一个大坑:菱形继承 希望这篇文章能让你理解什么是菱形继承,以及菱形继承的注意事项,以及为了解决菱形继承又引入一个坑 虚拟继承
2023-05-07 21:42:47
1142
9
原创 C++三大特性—继承“名字搜索与默认成员函数”
继承中的类的作用域、编译时的名字搜索、名字冲突与继承、名字查找优先类型检查派生类的默认成员函数、派生类的声明、继承与友元、继承与静态成员
2023-05-03 14:30:31
1613
12
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人