TZC⑥
码龄6年
关注
提问 私信
  • 博客:69,941
    社区:114
    动态:37
    70,092
    总访问量
  • 30
    原创
  • 404,545
    排名
  • 2,827
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2019-01-23
博客简介:

hbbfvv1h的博客

查看详细资料
个人成就
  • 获得577次点赞
  • 内容获得400次评论
  • 获得652次收藏
创作历程
  • 9篇
    2022年
  • 21篇
    2021年
成就勋章
TA的专栏
  • 面试
  • C++
    10篇
  • Linux
    13篇
  • 笔记
    16篇
  • 数据结构
    3篇
  • 函数
    1篇
  • 结构体
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

LinuxI/O多路转接

基础知识阻塞与非阻塞阻塞调用是指调用结果返回之前,当前线程会被挂起. 调用线程只有在得到结果之后才会返回非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程同步通信 vs 异步通信同步:调用者发出调用时,没有得到结果不会返回,阻塞等待,调用者主动等待该调用结果异步:与同步相反,发出调用后立即返回,调用内的工作由别人完成,等待被调用者的通知,直接使用,自己并不参与非阻塞IO一个文件描述符, 默认都是阻塞IOint fcntl(int fd, int cmd, … /* arg */
原创
发布博客 2022.04.14 ·
1949 阅读 ·
46 点赞 ·
32 评论 ·
21 收藏

传输层TCP与UDP

传输层负责数据能够从发送端传输接收端,进程到进程再谈端口号在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信端口号范围划分0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的.1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的我们自己写一个程序使用端口号时, 要避开这些知名端口号pidof
原创
发布博客 2022.03.28 ·
10398 阅读 ·
40 点赞 ·
32 评论 ·
99 收藏

HTTP协议

URI和URLURI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源URL,就是输入的网页地址,是uniform resource locator,统一资源定位符,它是一种具体的URI,URL表示互联网中资源的地点...
原创
发布博客 2022.03.16 ·
10450 阅读 ·
39 点赞 ·
25 评论 ·
134 收藏

网络套接字编程

端口号端口号(port)是传输层协议的内容端口号是一个2字节16位的整数;一个端口号只能被一个进程占用端口号用来标识一台主机内的唯一一个进程,公网IP标识全网内唯一一个进程,ip+port:标识全网内的唯一一个进程一台机器当中一个端口号可以唯一标识一个进程。而一个进程可以占用多个端口进程pid与port的关系在OS中,并不是所有的进程都需要进行网络通信,pid标识系统里的一个进程,port标识进行网络通信的一个进程pid是系统级别的概念,port是网络的概念网络字节序内存中的多字节数
原创
发布博客 2022.03.14 ·
4206 阅读 ·
24 点赞 ·
23 评论 ·
17 收藏

C++智能指针

RAIIRAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源的简单技术。在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源我们实际上把管理一份资源的责任托付给了一个对象。这种做法有两大好处:1.不需要显式地释放资源2.采用这种方式,对象所需的资源在其生命期内始终保持有效典型的应用有智能指针和lock_guard智能指针智能指针除了具有RAII特性外,还需要像指针
原创
发布博客 2022.03.10 ·
961 阅读 ·
27 点赞 ·
25 评论 ·
28 收藏

C++11

列表初始化{}的初始化问题C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型,使用初始化列表时,可添加等号(=),也可不添加#include<iostream>using namespace std;class Date{public: Date(int year = 0, int month = 1, int day = 1) :_year(year) , _month(month) , _day(day) {
原创
发布博客 2022.03.07 ·
838 阅读 ·
14 点赞 ·
16 评论 ·
7 收藏

Linux进程间通信

概念进程间通信本质让不同的进程,看到同一份资源内存,文件内核缓冲等)资源由谁(os中的那些模块)提供,就有了不同的进程如何实现进程间通信1.进程之间是具有独立性的,所以难以直接通信2…进程间通信,一般一定要借助第三方(OS)资源3.通信的本质就是”数据的拷贝“进程A->数据"拷贝"给OS的一段内存区域->OS数据"拷贝"给进程B这样通过OS这个“媒介”就实现了进程A与进程B的通信进程通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资
原创
发布博客 2022.02.15 ·
2554 阅读 ·
27 点赞 ·
21 评论 ·
32 收藏

线程的互斥与同步

线程的互斥相关概念:临界资源:多线程执行流共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的代码,就叫做临界区互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源起保护作用原子性:不会被任何调度机制打断的操作,该操作只有两态,要么完成,要么未完成简单的抢票程序 #include<stdio.h> #include<unistd.h> #include<pthread.h> #inclu
原创
发布博客 2022.02.12 ·
4677 阅读 ·
24 点赞 ·
20 评论 ·
39 收藏

线程与线程控制

线程线程定义Linux中的所有执行流,都叫做轻量级进程(LWP),轻量级进程又叫线程线程在进程内部运行:线程在进程地址空间内运行在Linux中,站在CPU的角度,能否识别该task_struct是进程还是线程?不能,CPU不需要识别,CPU只关心一个一个的单个执行流,每个task_struct就是一个执行流在CPU眼中的task_struct<=OS原理的tas
原创
发布博客 2022.02.09 ·
1324 阅读 ·
21 点赞 ·
18 评论 ·
10 收藏

拿下腾讯offer

发布动态 2022.02.01

室友竟只在2021的最后一天就学会了哈希表

哈希概念通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(Hash Table)(或者称散列表)映射方式1.直接定址法用数组与数据的相对映射或绝对位置建立索引关系,此时增删查改时间复杂度O(1)缺陷:1.如果数据范围很大,直接定制法会浪费大量的空间2.不能处理字符串,浮点数等数据,无法被拿来作为数组的索引适用于:整数,并且数据集中的情况2
原创
发布博客 2021.12.31 ·
3552 阅读 ·
33 点赞 ·
24 评论 ·
59 收藏

进程的控制

进程创建fork深挖对于返回值:为何要给子进程返回0,给父进程返回子进程的pid?父进程:子进程为1:n的关系,父进程创建子进程通常是要执行任务的,这时候,存在多个子进程执行不同的任务,父进程就需要区分不同的子进程所以就会通过返回子进程pid的方式返回给父进程对于fork分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表当中fork返回,开始调度器调度所以在fork内部,就已经出现了两个执行流,这样才会返回两个返回值fork之后谁先运
原创
发布博客 2021.12.14 ·
781 阅读 ·
21 点赞 ·
16 评论 ·
6 收藏

进程与环境变量

冯诺依曼体系结构可以看出:1.站在硬件角度和数据层面上,CPU只和内存“交流”,外设只和内存"交流"2.数据要处理必须预装载到内存,局部性原理,这个过程由OS完成这就回答了为什么程序运行之前要加载内存?程序本质上是文件,位于硬盘(外设)上,想到CPU运行,必须经过内存操作系统操作系统:软硬件资源的管理者操作系统不会和软硬件打交道,通过驱动拿到资源(数据)操作系统要对拿到的数据管理必须先描述再组织描述:用结构体来对其描述组织:选用适宜的数据结构存储所以操作系统对软硬件的管理
原创
发布博客 2021.12.09 ·
1027 阅读 ·
18 点赞 ·
13 评论 ·
7 收藏

map,set底层数据结构红黑树

红黑树的概念①红黑树与AVL树一样都是平衡二叉搜索树②通过从任一节点到其叶子节点的所有路径上都包含相同数目的黑节点的限制,确保没有一条路径会比其他路径长出俩倍,因而是接近平衡红黑树的性质每个结点不是红色就是黑色根节点是黑色的如果一个节点是红色的,则它的两个孩子结点是黑色的(没有连续的红结点)对于每个结点,从该结点到其所有后代叶结点的简单路径上,包含相同数目的黑色结点每个叶子结点都是黑色的(此处的叶子结点指的是空结点)红黑树的极端情况针对第三点我们很容易想到两种极端情况
原创
发布博客 2021.12.03 ·
2643 阅读 ·
17 点赞 ·
9 评论 ·
17 收藏

Linux进程信号

信号概述像上课铃声这种信号,我们识别接收后,知道该上课了,这是我们后天学习养成的默认意识。在进程收到信号后,它是知道该怎么做的 ,程序员内置了默认的处理行为进程的运行跟信号的产生属于异步关系:1.进程不一定立刻去处理已经到来的信号2.如果进程在处理优先级更高的事情,可以暂时不处理信号,等到合适的时候再处理。3.会用某种方式记录下已经到来的但没处理的信号,以便在空闲的时候处理这些信号异步:二者之间互不影响同步:二者之间相互影响处理信号的三种方式:1.默认行为2.提供信号处理函数,要求
原创
发布博客 2021.11.13 ·
1999 阅读 ·
15 点赞 ·
12 评论 ·
6 收藏

C++多态二三事

1. 多态的概念多态:多种形态;不同的对象完成同一件事情会发生不同的行为,产生不同的结果多态包括静态的多态:函数重载(静态指编译时)动态的多态:父类指针或引用调用重写了的虚函数(是指运行时)2.多态的定义和实现构成多态还需要两个条件:必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写虚函数:即被virtual修饰的类非静态成员函数称为虚函数静态没有this指针,无法形成切片,那就无法调用派生类重写了的虚函数,无法形成多态虚函数是
原创
发布博客 2021.10.29 ·
1052 阅读 ·
23 点赞 ·
8 评论 ·
25 收藏

C++继承二三事

继承定义继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类继承是is a的关系,子类(派生类)继承了父类(基类),子类拥有和父类一样的属性:所以子类可以使用父类的方法,父类的成员变量也拷贝到了子类![在这里插入图片描述](https://img-定义格式 派生类 继承方式 基类 class subclass : public parentcla
原创
发布博客 2021.10.26 ·
446 阅读 ·
16 点赞 ·
6 评论 ·
5 收藏

迭代器失效问题

迭代器指针失效的两种情况:案例一(insert):情况一:意义变了在Linux环境下:示例:在vs2019环境下:可以看到pos是在插入30之前给的值,插入后,可以认为pos就失效了,在vs2019环境下,插入后pos的意义变了,pos指向的是30,不再是3,导致erase(pos)没有达到删除3的目的,程序崩溃而在Linux环境下,“正常运行”,因为不同库的所执行的标准不同,检查机制也不一样,vs检查比Linux严格情况二:野指针只讲程序又插入了一个数据6,程序也崩了,但这原
原创
发布博客 2021.10.09 ·
597 阅读 ·
8 点赞 ·
5 评论 ·
1 收藏

Linux环境基础开发工具使用

Linux 软件包管理器yum软件包和软件包管理器, 就好比手机上的"App" 和 “应用商店”所以yum的作用主要是在Linux下安装软件注意:关于 yum 的所有操作必须保证主机(虚拟机)网络畅通yum的三板斧查看软件包通过yum list 命令可以罗列出当前一共有哪些软件包我们可以使用grep命令筛选出我们需要的包例如:yum list | grep lrzsz软件名"lrzsz"“x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择
原创
发布博客 2021.10.08 ·
6164 阅读 ·
8 点赞 ·
6 评论 ·
7 收藏

Linux的权限问题

这里写目录标题Linux下用户权限权限提升问题su命令:Linux权限管理①文件访问者的分类②文件类型③权限属性文件权限值的表示方法文件权限的修改chmod关于目录权限对拥有者和所属组的修改默认权限值修改初始权限值:粘滞位Linux下用户权限Linux下有两种用户:超级用户(root)、普通用户:超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”权限提升问题su命令:格式:su [-][用户名
原创
发布博客 2021.10.04 ·
732 阅读 ·
11 点赞 ·
6 评论 ·
3 收藏
加载更多