文件IO_复制文件描述符(附Linux-5.15.10内核源码分析)
目录 1.文件描述符复制简介 2.dup函数原型 2.1 dup函数 2.2 dup函数工作原理 2.3 dup函数内核源码分析 2.4 dup函数示例代码 3.dup2函数原型 3.1 dup2函数 3.2 dup2函数工作原理 3.3 dup2函数内核源码分析 3.4 dup2函数示例代码 4.dup3函数原型 4.1 dup3函数 4.2 dup3函数工作原理 4.3 dup3函数内核源码分析 4....
CloudCompare 源码分析:点云随机采样(阅读经典)
文章目录 一、简介 二、源码分析 三、小结 参考资料 一、简介 二、源码分析 CloudCompare中的随机采样方法存储在CloudSamplingTools.cpp中,具体代码如下所示: ReferenceCloud* CloudSamplingTools::subsampleCloudRandomly(GenericIndexedCloudPersist* inputCloud, unsigne...
文件IO_文件读写(附Linux-5.15.10内核源码分析)
目录 1.什么是文件偏移量? 1.1 文件偏移量介绍 1.2 文件偏移量重点 1.3 文件偏移量工作原理 2.文件偏移量设置 2.1 lseek函数 2.2 lseek内核源码分析 3.写文件 3.1 write函数 3.2 write内核源码分析 4.读文件 4.1 read函数 4.2 read内核源码分析 5.文件读写,文件偏移量设置示例代码 1.什么是文件偏移量? 1.1 文件偏移量介绍 在介绍文...
SynchronousQueue的TransferQueue源码分析
QNode的源码信息分析 一行一行的分析大概内容;下面会省略大量的CAS操作当前节点可以获取到的next节点item在生产者和消费者下有所不同。生产者是有数据。消费者为null。waiter为当前线程isData属性是用来区分消费者和生产者的属性。值得一提的是最终生产者需要将item交给消费者,最终消费者需要向生产者获取item SynchronousQueue的TransferQueue源码中核心方法...
Linux内核内存管理源码分析之init-mm.c(1)
本文参考:内核解读之内存管理(9) 第一个mm_struct_init-mm.c_奇妙之二进制的博客-CSDN博客 本文使用的内核版本为6.1.0。 init-mm.c文件只有56行,内容相对比较简单,直接贴全部代码了。mm/init-mm.c内容如下: // SPDX-License-Identifier: GPL-2.0#include <linux/mm_types.h>#include <li...
Linux内核源码分析 1:Linux内核体系架构和学习路线
好久没有动笔写文章了,这段时间经历了蛮多事情的。这段时间自己写了一两个基于不同指令集的Linux内核,x86和RISC-V。期间也去做了一些嵌入式相关的工作,研究了一下ARM指令集架构。 虽然今年九月份我就要申请了,具体申请AI方向还是机器人、嵌入式、操作系统、体系结构亦或是网络、安全、虚拟化还不知道到底要申请哪个,还没定下来,感觉比较迷茫,感觉什么都蛮喜欢的,都挺感兴趣的,都可以做,因为兴趣比较广泛,...
Tomcat处理http请求之源码分析
本文将从请求获取与包装处理、请求传递给Container、Container处理请求流程,这3部分来讲述一次http穿梭之旅。1 请求包装处理tomcat组件Connector在启动的时候会监听端口。以JIoEndpoint为例,在其Acceptor类中:protected class Acceptor extends AbstractEndpoint.Acceptor { @Override pu...
SpringBoot源码学习4——SpringBoot内嵌Tomcat启动流程源码分析
系列文章目录和关于我零丶引入我在初学spring的时候,很懵逼,因为整个项目中不存在main方法,让我有点摸不着头脑。那时候我知道有个东西叫tomcat是它监听了端口,解析了协议调到了我的servlet。在我初学SpringBoot的时候,很懵逼,有main方法了,但是tomcat在哪里呢,又是如何启动起来的?。一丶原生tomcat启动流程 在Tomcat总体架构,启动流程与处理请求流程中学习了t...
tpm2-tools源码分析之tpm2_nvdefine.c(2)
接前一篇文章:tpm2-tools源码分析之tpm2_nvdefine.c(1) 本文对tpm2_nvdefine.c中的tpm2_tool_onstart函数进行详细解析。 先再次贴出该函数源码: static bool tpm2_tool_onstart(tpm2_options **opts) { const struct option topts[] = { { "hierarchy", requ...
tpm2-tools源码分析之tpm2_nvdefine.c(1)
TPM 2.0中的tpm2_nvdefine命令对应的源文件就是tpm2_nvdefine.c,该文件位于tpm2-tools/tools/下,一共有570行(版本5.5)。 tpm2_nvdefine的功能是定义TPM非易失性(NV)索引。定义具有给定身份验证值的NV索引。 下边用几篇文章的篇幅对tpm2_nvdefine.c文件结合tpm2_nvdefine命令进行深入的、完全的解析。 先来看第一段代...