秋招学习笔记 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 进程回收。

相关推荐
白杨尚青2 小时前
C++进阶篇(二):多态——虚函数、重写、虚函数表与三个经典坑(附完整代码仓库)
开发语言·c++·多态·虚函数·重写·动态绑定
syagain_zsx2 小时前
spdlog实战:日志分级、滚动与性能调优
linux·c++·日志库·二次开发日志库
weixin_3077791320 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
AI wins20 小时前
c++新增頭文件
c++
Shadow(⊙o⊙)20 小时前
仿muduo实现高并发服务器——事件就绪管理Channel.hpp
服务器·c++
by2099921 小时前
哈希表——快速找到数据:冲突、删除与扩容的实现
数据结构·c++·哈希算法·散列表
音草21 小时前
C++ 继承详解:从概念到菱形继承
c++
weixin_307779131 天前
C++代码实现MATLAB中的spectralcluster函数功能
开发语言·c++·算法·matlab
xiaoye-duck1 天前
《C++ 项目:手写大模型接入 SDK》Trae IDE 开发环境搭建与依赖管理
c++·ide·语言模型
沫璃染墨1 天前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程