- 2024-11-1934. 网络编程
一、什么网络通信 计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便的互相传递信息、共享硬件、软件、数据信息等资源。网络编程直接或间接地通过网络协议与其它计算机实现数据交换,进行通信。
- 2024-11-14中断上下文及抢占标志位的检查——基于调度及锁举例
一、背景这篇文章作为“内核中断相关”专栏的第一篇是因为中断上下文及抢占标志位的检查贯穿着整个内核硬中断软中断处理流程,标志位的开启与关闭及如何检查标志位如能大致摸清,就能帮助我们对中断处理流程有一定的印象,这对我们理解linux整体底层机制,以及各个子模块如调度子模块
- 2024-11-12【c++】运算详解
运算算术运算符运算符功能+ (单目)正- (单目)负* (双目)乘法/除法%取模+ (双目)加法- (双目)减法单目与双目运算符单目运算符(又称一元运算符)指被操作对象只有一个的运算符,而双目运算符(又称二元运算符)的被操作对象有两个。例如 1+2 中加号就是双目运算符,它有 1 和 2 两
- 2024-10-24Go语言中的位运算符
位运算(bitwiseoperations)是计算机科学中非常基础且重要的运算类型,它直接操作二进制位。Go语言中提供了一组位运算符,用于执行位级别的操作。Go语言中的位运算符按位与(&):作用:对两个操作数的每个位进行与运算,只有对应位都为1时,结果位才为1。示例:5&3(0101&0011=0001),结
- 2024-10-19so加载流程分析
源码我的安卓版本:Pie9.0.0_r查看android源码的网站AndroidXRefAOSPXRefso的加载有两种方式,一种是在Java层加载,另一种是在Native层加载。Java层在Java层加载so的方式,这里有两种方式在源码的System.java类里System.load(“/data/data/app包名/lib/libnative-lib.so
- 2024-10-19关于 configure 的使用
在使用configure之前,首先要明白怎么用,configure-h查看帮助Someinfluentialenvironmentvariables:CCCcompilercommandCFLAGSCcompilerflagsLDFLAGSlinkerflags,e.g.-L<libdir>ifyouhavelibrariesinanonstandardd
- 2024-10-12cmake使用笔记
cmake_cxx_flags常用值在CMake中,CMAKE_CXX_FLAGS是一个用于指定C++编译器选项的变量。你可以将不同的编译选项添加到这个变量中,以影响编译过程的行为。以下是一些常用的CMAKE_CXX_FLAGS值及其说明:1.优化选项1.-O0:禁用优化(默认选项)。2.-O1:启用一级优化。3.-O2:启用二
- 2024-10-09C++编译并运行后出现Process finished with exit code 139 (interrupted by signal 11:SIGSEGV),程序意外终止.
问题描述: 代码运行意外终止,报错信息为Processfinishedwithexitcode139(interruptedbysignal11:SIGSEGV)CMakeList文件如下:cmake_minimum_required(VERSION3.26)project(SLAM)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIRED
- 2024-10-09dwg解析-样条曲线拟合点解析(中望CAD导出)
dwg解析-样条曲线拟合点解析(中望CAD导出)中望CAD导出的dwg文件,其中样条曲线拟合点解析出的结果出拟合点和起始点的方向,解析代码如下:/harrayistheHandle(TColgp_HArray1OfPnt)containingthesampledcirclepointsintheYZplaneatPI/4,PI/2,3/2PIand2PIGeomAPI_
- 2024-09-29Bad or missing usercopy whitelist? Kernel memory overwrite attempt detected to SLUB object
Linux内核有一个usercopywhitelist机制,只允许这里面的region来做usercopy。如果是用kmem_cache_create申请的kmem_cache申请的内存空间来copytouser或者copyfromuser,那么就会报这个错。这时要用kmem_cache_create_usercopy,来将申请的区域加入到usercopywhitelist中。/***
- 2024-09-28disp_buffer_flags 枚举定义了一系列用于描述 framebuffer(帧缓冲区)特性的标志位
disp_buffer_flags 枚举定义了一系列用于描述framebuffer(帧缓冲区)特性的标志位。这些标志位主要用于指示framebuffer的内容是如何组织的,特别是当涉及到立体视觉(3D显示)时。这些标志允许系统或应用程序知道如何正确地处理和显示framebuffer中的数据。下面是对每个标志位的具
- 2024-09-25android 10 禁止通过adb命令的方式删除特定APK
—a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java+++b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java@@-1636,84+1636,88@@classPackageManagerShellCommandextends
- 2024-09-19Flags
Flags是位字段的序列,当其中任何一个位不为零且广播可连接时广播包中应包含flags.否则,flags可以被忽略。flags只能包含在广播包中,扫描响应包中不能包含flags。flags的作用是在广播包中加入如下标志:有限可发现模式;一般可发现模式;不支持BR/EDR;设备同时支持LE和BR/EDR;(控
- 2024-09-16GCC安全编译选项
以CMake为例,给出安全编译选项的定义。关闭RPATH特性。set(CMAKE_SKIP_RPATHTRUE)开启栈保护。set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-fstack-protector-strong")或者set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-fstack-protector-all")开启GOT表保护。set(CM
- 2024-09-02ros openvslam
CMakeLists.txtcmake_minimum_required(VERSION3.1)project(openvslamLANGUAGESCXXC)set(CMAKE_CXX_STANDARD11)set(CMAKE_CXX_STANDARD_REQUIREDON)if(POLICYCMP0042)cmake_policy(SETCMP0042NEW)endif()if(POLICYCMP0074)cmake_policy(SET
- 2024-08-27inno setup基础的脚本代码
;脚本由InnoSetup脚本向导生成!;有关创建InnoSetup脚本文件的详细资料请查阅帮助文档!#defineMyAppName"LeawoBlu-rayPlayer"#defineMyAppVersion"1.0.0.0"#defineMyAppPublisher"moyea"#defineMyAppURL"https://www.example.com/"#defi
- 2024-08-25Redis源码浅析二:命令执行
1.入口:readQueryFromClient在redis启动的时候,我们还要关注一个重点,在initServer的时候,会执行aeCreateFileEvent,这里我们还有深入学习一下记住这个readQueryFromClient,它是clientrequest到server端处理的入口,有点类似于netty里面的入栈处理器2.readQueryFromClient
- 2024-08-21C++运算符优先级
优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a+b)/4;array[4]=2;ptr->age=34;obj.age=34;Class::ag
- 2024-08-18DirtyCOW-内核分析报告-cnblog
基础知识mmap(void*start,size_tlength,intprot,intflags,intfd,off_toffset)一个比较常用的函数,将磁盘上的文件映射到虚拟内存中,POC中参数prot为PROT_READ参数,参数flags为MAP_PRIVATE,请参考linux库函数mmap()原理及用法详解_linuxmmap函数madvice(caddr_tadd
- 2024-08-18D46 2-SAT+线段树优化+二分 [ARC069F] Flags
视频链接: [ARC069F]Flags-洛谷|计算机科学教育新生态(luogu.com.cn)//D462-SAT+线段树优化+二分O(nlognlogv)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;#definemid((l+r)>>1)#definels(u<<1)#definer
- 2024-08-17MNN框架在WIN10上的部署
一、为什么要做刚进公司,实习期反正主管要求什么我就做什么。。。。自己反正也比较感兴趣,故开始查看官方文档。下述的一切都是基于官方提供的“语雀文档”内的指令进行的,会对自己部署MNN框架的流程当中踩的坑进行记录,希望可以帮助到有缘人。二、具体内容1、在各个应用端部署MNN
- 2024-08-13计算机视觉1:cv2模块函数学习
cv2模块函数学习importcv2ascv (下文同一用cv)1.cv.imread()cv.imread(filename[,flags]) -> retval其中,参数filename表示要读取得图像得文件名,flags表示读取模式,取值如下:flags=2,表示载入的图像深度为16位或者32位,就返回对应深度的图像,否者转换为8位图像再返
- 2024-08-130224-网络层的分片
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0tun-tap0.1.3前言说明参考:https://docs.rs/pnet/latest/pnet/index.html目标通过ping命令来认识网络层中的分片。查看MTU可以看到最大的MTU为1500。root@jiangbo12490:~#ipaddrshowdevtun0
- 2024-08-07十万个为什么 [CMake] Windows MinGW Cmake
搜索cmakegenerator 在settings.json里面添加"cmake.preferredGenerators":[ "MinGWMakefiles" ] cmake_minimum_required(VERSION3.0.0)project(idatalinkVERSION0.1.0)if(CMAKE_BUILD_TYPESTREQUAL"Release")
- 2024-08-05linux运维一天一个shell命令之tcpdump详解
一、tcpdump的概念tcpdump是一个数据包捕获工具,能够拦截和显示通过网络接口的数据包。它可以实时捕获数据包,也可以将捕获的数据保存到文件中以便后续分析。tcpdump支持基于多种条件(如IP地址、端口号、协议等)来捕获特定的数据包。二、主要功能和特点1.数据包捕获:tcp