
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
vector 本质是[]at()pop_back()

文件描述符就是进程打开文件的 “整数 ID”,是用户态和内核态之间操作文件的唯一桥梁,所有文件操作最终都要通过它和内核交互。强行让 newfd 变成 oldfd 的副本是 Linux 实现输入 / 输出重定向的唯一底层函数操作对象是文件描述符,和是一套系统调用重定向:打开方式+dup2缓冲区就是一块内存区域,用于临时存放数据,解决读写双方的速度差异,等攒够数据或时机合适时,再统一处理,避免频繁的低

我们常说的磁盘,分为 机械硬盘(HDD,就是下面图里的这种)

特性进程线程资源开销高低切换速度慢快隔离性强(独立地址空间)弱(共享进程资源)通信复杂度高(需 IPC 机制)低(共享内存,需同步)编程难度相对简单(无锁,隔离性好)较高(需精细同步设计)适用场景稳定性优先、隔离性要求高性能优先、高频数据交互。

✅ 发送:应用数据 → TCP 报头 → IP 报头 → 以太网报头 → 二进制比特流✅ 接收:比特流 → 去除以太网报头 → 去除 IP 报头 → 去除 TCP 报头 → 原始应用数据生活化类比:每经过一层协议就多贴一张快递中转标签,收件时依次撕掉全部标签,取出最内侧货物。IP 负责找到目标所在 “城市(网段)”,MAC 负责在目标城市里精准找到 “具体住户(终端设备)”。MAC→局域网找设备;

生产者消费者模型是操作系统和多线程编程中的经典同步 / 互斥模型,在 Linux 多线程场景中尤为常见。它的核心目标是:解决生产者和消费者之间 “生产 / 消费速度不匹配” 的问题,同时实现两者的解耦与安全协作。简单来说,模型描述了两类线程如何通过一个固定大小的共享缓冲区(仓库)协调工作,避免数据竞争、死锁或资源浪费。角色核心职责阻塞规则生产者线程负责生成数据,将数据放入缓冲区缓冲区满时,必须停止
• toStyledString 、StreamWriter 和 FastWriter 提供了不同的序列化选项,你可以根 据具体需求选择使⽤。• Json::Reader 和 parseFromStream 函数是Jsoncpp中主要的反序列化⼯具,它们提供了强 ⼤的错误处理机制。• 在进⾏序列化和反序列化时,请确保处理所有可能的错误情况,并验证输⼊和输出的有效性。

核心原因是。

TCP有发送缓冲区是因为如果数据丢了要重传。只有收到数据已送达的信号才会清空发送缓冲区;UDP是不可靠传输协议,数据丢了就丢了。没有重传这一概念,因此没有发送缓冲区。为什么UDP要有接收缓冲区?因为进行网络通信时,上层要做很多工作。因此OS要提供一个接收数据的能力,上层忙的时候,OS也能缓存一部分报文,如果接收缓冲区满了,再发送报文,则该报文会被丢弃,丢弃后UDP并不会关心。报文的理解报文=报头+









