秋招学习笔记 day46

1.http 与 https 的区别逐字稿

https 是在 http 的基础上,在 tcp 连接之后建立 tls 连接,tls 通过证书验证服务器身份,并通过非对称加密等协商密钥,使用对称加密的方式传输数据,https 还会校验数据的完整性。

2.new 和 malloc 的区别

new 是 c++的分配堆上空间的方法,而 malloc 属于 c,new 会在分配空间之后调用对象的构造函数而 malloc 不会,new 返回的是指向对象的指针,malloc 返回的是无类型的指针,new 之后要 delete,malloc 后要 free。

在调用失败之后 new 是抛出异常,而 malloc 是返回 nullptr。

3.进程退出的几种方法

首先是主动退出的方法,main 通过 return 退出进程,可以使用 exit 这个 c 库函数去退出,exit 会刷新 stdio 缓冲区,系统调用 exit 也可以退出。

异常退出的情况可以使用 abort 也可以是在接收到一些信号比如 ctrl+c 的情况下进程会退出。

4.关于智能指针

c++的智能指针是基于 Raii 资源管理方式,管理动态对象生命周期的方法,可以避免手动 delete 造成的内存泄漏。

uniqueptr 独享所有权,不能被拷贝只能被移动。

sharedptr 共享对象所有权,内部有引用计数,当引用计数为 0 时自动释放对象的空间。

weakptr 和 sharedptr 是结合起来使用的,解决了 sharedptr 循环引用的问题,在使用前要通过 lock 去尝试获得 sharedptr 再去使用。

5.避免僵尸进程的方法

可以通过父进程 wait wait pid 去回收资源,可以使用信号处理函数去收到信号时去 wait pid 回收资源,如果不关心子进程退出可以忽略信号由内核进行处理,也可以使用两个 fork,子进程立马 exit 由父进程回收资源,孙进程变成孤儿进程由 init 进程回收。

相关推荐
青少儿编程课堂21 分钟前
蓝桥杯青少组图形化 STEMA 省考(报名倒计时·11/22开考)+ 全国青少年信息素养大赛 2026—2027赛季 + 电子学会图形化考级:校园华容道大闯关
c++·python·算法·bfs·信息学竞赛
白杨尚青37 分钟前
C++进阶篇(五):红黑树——四条规则、三种插入情况与旋转变色
开发语言·数据结构·c++·stl·红黑树·平衡二叉树
旖旎夜光2 小时前
【C++ 基础入门】C++ 继承(上):概念、切片、隐藏、默认成员函数与友元
c++·笔记·学习
apcipot_rain2 小时前
C++转Java日记(05)
java·开发语言·c++
apcipot_rain11 小时前
C++转Java日记(04)
java·开发语言·c++
WL学习笔记13 小时前
vector模拟实现
c++
蜗牛一步步往上爬16 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
wo_jack19 小时前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
D e re k ZH20 小时前
C++ 标准库算法全景指南
数据结构·c++·算法
雪落漂泊21 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法