- 博客(19)
- 收藏
- 关注
原创 Ubuntu 安装Telnet服务
2. 安装Telnet 服务器 (这样才能用A电脑的客户端连接B电脑的Telnet服务)3. 这时候Telnet服务器是无法自我启动的,需要网络守护进程服务程序来管理它。1. 安装Telnet 客户端。
2025-06-19 16:37:03
264
原创 C++类和对象-1
默认成员为privatestruct默认为publicclass为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。【访问限定符说明】1. public修饰的成员在类外可以直接被访问2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
2025-05-24 14:43:40
299
原创 网络基础概念
独立模式计算机之间相互独立;网络互联多台计算机连接在一起完成数据共享;局域网LAN:计算机数量更多了通过交换机和路由器连接在一起;广域网WAN:将远隔千里的计算机都连在一起;所谓局域网和广域网只是一个相对的概念比如我们有天朝特色的广域网也可以看做一个比较大的局域网.2.初识协议。
2025-05-23 15:21:19
778
原创 Linux条件变量
在 Linux 系统中,函数和条件变量(Condition Variable)是多线程编程中用于线程同步的核心机制。它们通过协调线程间的等待与通知逻辑,解决共享资源的竞争问题。
2025-05-21 20:40:38
880
原创 Linux锁和互斥锁
在 Linux 系统中,锁(Lock) 是用于协调多个进程或线程对共享资源(如内存、文件、设备等)访问的同步机制。其核心目标是避免数据竞争(Data Race)和不一致性问题。而 互斥锁(Mutex,Mutual Exclusion Lock) 是锁的一种具体实现形式,专门用于确保同一时刻只有一个线程或进程能访问临界区(Critical Section)。
2025-05-21 16:18:52
891
原创 Linux多线程
include<pthread.h> //创建线程的头文件int cnt=10;//问题2:我们期望谁最后退出?主进程main thread最后退出,如何保证?pthread_join函数// 不进行join,则会造成类似僵尸进程的问题int main()//创建新线程//主线程if(n==0)return 0;
2025-05-18 16:08:37
887
原创 Linux信号详解
signal()是 Linux 系统中用于设置信号处理方式的系统调用,允许进程自定义对特定信号的响应行为。signal()//函数指针//signum:需处理的信号编号(如SIGINTSIGTERM),但 SIGKILL 和 SIGSTOP 不可被捕获或忽略。handler自定义函数:接收int参数的函数,用于处理信号;SIG_IGN:忽略该信号;SIG_DFL:恢复系统默认处理。man 7 signal 查看全部信号的默认动作。
2025-05-13 22:54:53
993
1
原创 树-二叉树(详解)
通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩 子和右孩子所在的链结点的存储地址。对 于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号 从1至n的结点一一对应时称之为完全二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。二叉树是一个节点的有限集合,当该集合为空,则是上图的空树。
2025-03-05 22:04:45
1019
1
原创 Linux中gdb调试常用命令
GNU Debugger(GDB)是GNU项目的一部分,是一个功能强大且灵活的调试工具,广泛应用于调试C、C++、Fortran和其他编程语言的程序。GDB允许开发者检查和修改程序的运行状态,从而帮助识别和修复错误。程序的发布方式有两种,debug模式和release模式Linux gcc/g++出来的二进制程序,默认是release模式要使用gdb调试,必须在源代码生成二进制程序的时候,加上 -g 选项。
2025-02-18 23:03:13
812
原创 Ubuntu Vim编辑器自动补全技巧:提升编码效率!
但是网上配置的文件都设置了不开启swap功能,经过查看vim配置SWAP信息,找到设置的里面的关键语句配置文件在用户主目录“~”里面,通过ls -al 命令查看 .vimrc。读者感兴趣的话直接复制下面的代码到文本文件,然后把文件改名为“ .vimrc” (不要忘记前面的“.”),然后把文件放到用户文件夹的根目录下面即可。vim本来就是很强大,很方便的编辑器,加上我的代码后肯定会如虎添翼,或许读者使用其他编程语言,可以根据自己的需要进行修改,配置文件里面已经加上注释。8.按“Ctrl + P”可自动补全。
2025-02-13 00:09:28
366
原创 C++缺省参数详解
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
2024-12-28 18:21:17
172
原创 顺序表(C语言实现)
顺序表头插数据需要找到尾巴的元素,然后将尾元素往前的全部元素全部往后移动覆盖掉,再将数据填到顺序表的表头,时间复杂度是O(n)顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。即使内存块被移动到新的位置,内存块的内容也会保留到新大小和旧大小的较小值。:是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。如果是空指针,函数的行为类似于分配一个新的字节块,并返回一个指向其开头的指针。:是n个具有相同特性的数据元素的有限序列。
2024-08-15 23:43:52
394
原创 单链表图文详解(C语言实现)
优点:1.下标访问(随机访问)时间复杂度是O(1)2.末尾位置增加删除元素时间复杂度是O(1)3.访问元素前后相邻位置的元素非常方便缺点:1.非末尾位置增加删除元素需要进行大量的数据移动O(n)2.搜索的时间复杂度:无序数组-线性搜索O(n)有序数组-二分搜索O(logn)3.数组扩容消耗比较大,少了需要再扩容,多了浪费资源!
2024-04-23 15:20:38
855
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人