- 博客(1424)
- 资源 (68)
- 收藏
- 关注

原创 C/C++学习总结
文章目录Markdown常用语法一、面试二、编程语言1.C/C++(1)C和C++进阶的学习笔记总结目录(2)Linux系统编程(3)C语言开源项目(4)C++开源项目(5)Linux运维2.java3.python4.数据结构与算法三、分布式四、Docker,OpenStack五、Github和开源项目学习六、个人简历七、关于测试八、镜像地址或网站九、自勉之语Markdown常用语法 (1)CSDN Markdown空行:  (2)分割线:用三个以上的星号、减号、底线来建立一个分
2020-08-16 20:14:00
2068
1
原创 使用dlopenC++动态库的函数符号的常规做法
在 C 中,符号名称与函数名称相同:strcpy 的符号将是 strcpy,因为在 C 中没有两个非静态函数可以具有相同的名称。因为 C++ 允许重载(具有相同名称但不同参数的不同函数)并且具有许多 C 所没有的功能(如类、成员函数、异常规范),所以不可能简单地使用函数名称作为符号名称。C++ 有一个特殊的关键字来声明具有 C 绑定的函数:extern “C”。声明为 extern “C” 的函数使用函数名称作为符号名称,就像 C 函数一样。因此,只有非成员函数可以声明为 extern “C”,并且不能重载
2023-11-18 16:31:30
80
原创 Python实现定时对网站进行签到
首先打开我们需要签到的网站,使用Chrome浏览器的F12快捷键(或通过鼠标右键菜单“检查”)打开浏览器的开发者工具,点击 Network 查看所有加载的请求。如下方动图所示,这个时候我们手动点击签到,就会发现出现了一个新的post请求(checkin),不出所料这便是我们签到的请求。将刚刚复制的内容,填写该网站左侧,右侧同时生成了对应的 python requests 代码。剩下的事就很简单了,只需要每天定时执行该代码(模拟发起post签到请求)就可以实现该网站签到。复制cURL(bash)
2023-11-03 10:24:20
145
原创 muduo异步日志库
基本思想是准备2部分buffer:A和B,前端(front end)线程往buffer A填入数据(日志消息),后端(back end)线程负责将buffer B写入日志文件。实现时,在后端设置一个已满缓冲队列(Buffer1~n,2
2023-10-22 09:30:51
410
原创 c++ inline namespace
C++11引入了inline namespace的语法,这个语法可以让程序员在不破坏现有代码的情况下添加新的命名空间。inline namespace的作用是将内层的命名空间成为外层的一个别名。也就是说,当程序员使用外层命名空间的时候,内层命名空间的内容也可以被访问到,不需要加上内层命名空间的限定符。这个特性可以帮助程序员更好地组织代码。举个例子,假设我们有一个命名空间foo,里面包含一个内层命名空间bar。// bar 中的内容// foo 中的内容。
2023-09-25 10:47:16
104
原创 GitLab CI/CD:.gitlab-ci.yml 文件常用参数小结
可以定义跑CI时想要运行的命令或脚本。可以定义想要包含的其他配置文件和模版。可以定义job之间的依赖和缓存。可以执行程序部署并定义部署位置。
2023-09-24 10:58:44
167
原创 C++正则表达式regex使用总结
正则表达式(regular expression)的C++库regex是一种强大的描述字符序列的工具 , C++11中也将正则表达式纳入了新标准的一部分。regex库中常用组件介绍在头文件中包含了多个我们使用正则表达式时需要用到的组件,即 #includeregex库组件详细介绍如下regex表示有一个正则表达式类,比如:regex pattern(“(.{3})(.{2})_(\d{4})!”)全文匹配,要求整个字符串符合正则表达式的匹配规则。
2023-09-23 17:31:19
301
原创 cpp-stub使用教程(基于Gtest)
配合Gtest使用,因为Gtest的所有接口都是基于虚函数的;此外,由于一些依赖接口不容易Stub或者Mock(或者写Stub test过于麻烦),因此在Gtest的基础上使用cpp-stub进行单元测试用例编写。
2023-09-21 11:58:35
267
原创 gdb调试C++程序:Cannot evaluate function -- may be inlined
如果你的程序依赖于libcxx,而不是libstdc++.so.6。对应的可以调整cmake编译选项或者选择Debug类型进行编译。配置~/.gdbinit。
2023-09-20 16:53:40
283
原创 如何下载免费文献
搜索“浙江图书馆”,进入左下方功能栏里的“服务大厅”。同样可以免费下载文献:比如杭州图书馆、绍兴图书馆。操作方法与上面类似,通过支付宝来在线办理读者证。白嫖知网的入口之一,就藏在你天天用的支付宝里。办理完毕后,回到支付宝打开卡包,读者证到手。用刚刚获得的账号,从电脑端登录浙江图书馆。但浙江图书馆使用的人比较多,容易卡顿。下滑找到“中国知网数据库总站”,点击“新用户注册”填信息。可以试一试其他图书馆,
2023-08-28 13:28:21
127
原创 C++设计模式之桥接模式
总之,桥接模式适用于需要将抽象部分和实现部分分离的场景,以实现灵活性、可扩展性和解耦的设计。它可以帮助处理多个维度上的变化,并在运行时动态地切换抽象和实现的关系。eg:手机品牌和软件是两个概念,不同的软件可以在不同的手机上,不同的手机可以有相同的软件,两者都具有很大的变动性。
2023-08-23 17:29:59
966
原创 C++设计模式之适配器模式
类适配器模式使用继承来适配接口;对象适配器模式通过将适配者对象作为适配器类的成员变量来实现适配;无论是类适配器模式还是对象适配器模式,都可以实现接口适配的效果,选择哪种方式取决于具体的需求和设计考虑。
2023-08-23 17:04:02
924
原创 C++中的类型擦除技术
在 main() 函数中,我们创建了两个不同类型的 Derived 对象 d1 和 d2,然后创建了一个 Functor 对象 f。通过调用 f(d1) 和 f(d2),我们将不同类型的对象传递给函数对象 f,它将根据对象的类型调用适当的 foo() 实现。process() 函数接受一个 std::function 类型的参数,它表示一个无返回值、不带参数的可调用对象。C++语境下的类型擦除,技术上来说,是编写一个类,它提供模板的构造函数和非虚函数接口提供功能;所以,这段代码可以过编译。
2023-08-17 17:23:11
409
1
原创 Python使用struct模块
struct模块的主要功能是根据一些特定的格式字符串来解析和构建二进制数据。这些格式字符串指定了数据的布局和类型,以及如何将数据打包(pack)到二进制形式或从二进制形式解包(unpack)。通过socket.recv接收到了一个上面的结构体数据,存在字符串s中,现在需要把它解析出来,可以使用 unpack() 函数.把本地数据再pack成struct格式。
2023-08-17 13:48:07
151
原创 WSL2中使用perf做火焰图
return -1;return -1;int i = 0;for (;number[i]!= 0;return 0;
2023-08-16 17:59:39
155
原创 C++变长模板参数、参数打包、tuple、index_sequence、逗号运算符、与折叠表达式
【代码】C++变长模板参数、参数打包、tuple、index_sequence、逗号运算符、与折叠表达式。
2023-08-03 22:46:32
297
原创 CMake之CPack
在上面的CMakeLists.txt中,最重要的是INSTALL这个指令,上面的INSTALL指令所表达的意思是,需要将LinkLibraryDemo, PrinterInt, PrinterChar 这3个文件打包,其中可执行文件放在/tmp/cmake_demo,这个目录中,静态库和动态库文件则放在默认目录中。如果你不赋值CPACK_DEBIAN_PACKAGE_DEPENDS这个变量,则在debian/control文件中,没有Depends这一行,虽然在你自己的机器上不影响打包构建。
2023-07-07 17:07:45
1212
原创 【C/C++进阶】宏函数实用指南
// NDEBUG来自:#include // NDEBUG就是release # if defined(NDEBUG) # define CHECK_GL(x) \ do {\(x);\(x);return;} // NDEBUG来自:#include // NDEBUG就是release # if defined(NDEBUG) # define CHECK_GL(x) \ do {\(x);\(x);return;
2023-06-11 21:53:15
595
原创 Autosar之自签名证书与CA证书
验证完整性主要依赖于消息摘要算法的特性,摘要算法的原理是根据一定的运算规则提取原始数据中的信息,被提取的信息就是原始数据的消息摘要,也称为数据指纹。对一份数据,进行一个单向的 Hash 函数,生成一个固定长度的 Hash 值,这个值就是这份数据的摘要著名的摘要算法有 MD5 算法和 SHA 系列算法。摘要算法具有以下特点:一致性: 相同数据多次计算的摘要是相同的,不同的数据(在不考虑碰撞时)的摘要是不同的;不可逆性: 只能正向提取原始数据的摘要,无法从摘要反推出原始数据;
2023-05-29 17:46:59
887
原创 AutoSar之对称加密和非对称加密
客户端传输重要信息给服务端,服务端返回的信息不需加密,例如绑定银行卡的时候,需要传递用户的银行卡号,手机号等重要信息,客户端这边就需要对这些重要信息进行加密,使用RSA公钥加密,服务端使用RSA解密,然后返回一些普通信息,比如状态码code,提示信息msg,提示操作是成功还是失败。这种场景下,仅仅使用RSA加密是可以的。客户端传输重要信息给服务端,服务端返回的信息需加密,例如客户端登录的时候,传递用户名和密码等资料,需要进行加密,服务端验证登录信息后,返回令牌token需要进行加密,客户端解密后保存。
2023-05-23 11:36:59
562
原创 现代 CMake 模块化项目管理指南
如果模块 Carer 的头文件 Carer.h 虽然引用了其他模块中的 Animal 类,但是他里面并没有解引用 Animal,只有源文件 Carer.cpp 解引用了 Animal。如果不加,在你创建新文件时,myvar 不会自动更新,还是旧的那几个文件,可能出现 undefined symbol,需要重新运行 cmake -B build 才能更新。上图的案例中,我们在根目录下,创建了两个子项目 biology 和 pybmain,他们分别在各自的目录下有自己的 CMakeLists.txt。
2023-05-22 11:33:29
1295
原创 汽车电子电气架构里的VCU DCU ZCU ECU怎么区分?
VCU(Vehicle Control Unit,车辆控制单元):VCU是车辆级别的控制单元,负责管理和协调车辆的各个系统和子系统之间的通信和协同工作。它可以被看作是车辆的大脑,接收和处理来自不同子系统(如动力系统、底盘系统、安全系统等)的信息,并向这些子系统发送指令以控制车辆的运行。ECU(Electronic Control Unit,电子控制单元):随着汽车变得愈加智能,车辆的功能也愈加丰富、愈加复杂,车内的线束、结点都在不断增加;是按照域分为了集成各种相关ECU功能的DCU(域控制器ZCU)。
2023-05-22 10:06:19
2405
3
原创 Python模板字符串Template
使用substitute(dict)或safe_substitute(dict)方法执行替换。使用命名格式化符,这样,对于多个相同变量的引用,在后续替换只用申明一次即可;将已定义的字符串使用Template(str)的形式转换为字符串模板。使用params={}字典键值对的形式定义变量及其需要替换的结果值;使用Template(str)定义字符串模板;使用string中的Template方法;根据需要,设置字符串中需要替换的字符以。使用$标识需替换的变量;
2023-05-12 22:47:06
730
原创 Available-Python-Tuf
向该Pyhton-tuf的repo server上传包不会持久化保存到本地,是个demo级别的demo。5.上述依赖包安装完毕后,不能启动,需要重新将新版的securesystemslib和tub的包覆盖到。2.使用python 的virtualenv环境,这样不会污染我们的OS环境。4.使用python虚拟环境–virtualenv。1.下载Python-tuf。3.安装依赖的pip包。
2023-04-14 13:17:37
623
原创 vscode中调试rust程序
(3)配置vscode编译:打开vscode,终端->运行任务->配置任务->使用模板生成task.json文件->others,会在工程目录的.vscode中生成tasks.json。也会在工程目录下的.vscode中生成一个launch.json文件。环境:在WSL(ubuntu20.04)中使用vscode。(2)在vscode中安装rust-analyzer。(4)配置vscode调试:点击vscode这里。(1)在WSL 中安装rust,cargo。
2023-04-12 10:18:04
1936
原创 Autosar系列之Developer工具
是一个Vector工具,用于设计Autosar ECU 的软件组件SWC的软件(设计应用层软件)。通信图形视图或文本网格视图,可以设计软件组件,包括端口、数据类型、连接器和内部行为。通过一致性检查,可以验证SWC设计是否符合Autosar标准。
2023-04-03 23:43:53
788
原创 Python装饰器Decorators
这样做逻辑上是没问题的,功能是实现了,但是我们调用的时候不再是调用真正的业务逻辑 foo 函数,而是换成了 use_logging 函数,这就破坏了原有的代码结构, 现在我们不得不每次都要把原来的那个 foo 函数作为参数传递给 use_logging 函数,那么有没有更好的方式的呢?当然有,答案就是装饰器。foo() 函数不需要做任何修改,只需在定义的地方加上装饰器,调用的时候还是和以前一样,如果我们有其他的类似函数,我们可以继续调用装饰器来修饰函数,而不用重复修改函数或者增加新的封装。
2023-04-03 19:50:03
223
原创 Autosar系列之Autosar应用层整体入门
通信方式:1:1 or n:1(与S/R对应,客户端可以调用单个Server的一个服务, 也可以调用单个Server的多个服务)DE既可以是简单的数据类型(integer,float),也可以是复杂类型(array,record);如果一个data element要通过总线传输,那么他必须与一个signal对应起来;一个port可以包含多种data element;一个C/S port包含多种operations;Operations可以被单个调用;通信方式:1:n,或者n:1。
2023-04-02 23:04:43
630
原创 Autosar系列之RTE
事件调用RTE负责调用可运行实体,Autosar软件组件无法动态创建Runnable线程,因此通过事先定义好的RTE Events触发可运行实体的执行。RTE支持所偶含有Autosar接口的运行体的管理,不仅有SWC,还包括BSW。生成调用runnables的task代码(生成的Runnable能够在RTE中运行)(2)提供Autosar软件组件访问的基本软件模块服务,eg:对OS调用。RTE需要配置(eg:把Runnables对应到OS的tasks中)通过RTE的事件触发runnables的运行。
2023-04-02 22:30:00
1421
原创 汽车操作系统
Automotive Grade Linux是一套开源的车载系统平台。Automotive Grade Linux (简称AGL)是一个由Linux基金会主导的一个开源项目。这是一个由汽车制造商,供应商,技术公司共同组建的开发团体开发的项目。AGL是一个为车载环境开发的操作系统,我们通常称这种系统叫做车载信息娱乐系统(In-Vehicle Infotainment,简称IVI)。5分钟,带你了解汽车操作系统Automotive Grade Linux 系统介绍。
2023-03-30 14:04:04
2519
原创 Autosar系列之Appl概述
片内的,在一个ECU内部的SWC之间通信走RTE,跨ECU,片外的ECU之间走Bus总线。eg车内内顶灯:通过7个SWC实现:汽车内部灯的常闭、常开、随门模式。Runnable:可运行实体,SWC里面的一些函数。Autosar接口:SWC之间连接的端口。哪几个SWC在或者不在一个ECU里面?SWC:应用软件组件。
2023-03-29 23:38:53
259
原创 AutoSar系列之:AutoSar概述
RTE:用与传递应用层软件和基础软件从之间的信号的;隔离应用软件层和基础软件层;其中一个层修改了,不会影响另外一个层;SWC:有1个或者多个Runnable(运行函数,可运行实体),Runable的接口通过RTE到BSW;matlab:simulink做应用层开发;
2023-03-29 23:23:58
275
原创 AutoSar系列之:AutoSar发展
在代码法的基础上,通过有经验的架构师做出一套优化架构,并且结合一些操作系统,对代码进行封装,这样一来便可以大大降低代码法的很多弊端,一名好的架构师设计出来的架构往往可以起到几倍到十几倍的效率增幅,不过缺点仍然有。就是大家经常使用的手写代码,目前也有一部简单的ECU(汽车电子单元,简单的说就是汽车上的某个控制器,比如锂电池的管理单元BMS,电机控制单元MCU,都可以叫做ECU)。不论硬件是怎么设计的,我妈都不用修改我们的代码,只需要配置一下Autosar,告诉他我还硬件了,然后Autosar帮你匹配硬件。
2023-03-29 23:05:44
303
原创 UTC时间和PTP精确时间协议
UTC时间是比北京时间早的,现在北京时间是2020/11/27/16:45,对应的UTC时间是2020/11/27/08:45。UTC(Coodinated Universal Time),协调世界时,又称世界统一时间、世界标准时间、国际协调时间。1972年之前,格林威治时间(GMT)一直是世界时间的标准。也称天文时间,或太阳时,他的依据是地球的自转,我们用它来确定多少原子时,对应于一个地球日的时间长度。结合了全球400个所有的原子钟而得到的时间,它决定了我们每个人的钟表中,时间流动的速度。
2023-02-22 10:31:51
798
VS code的linux服务器端的离线安装教程
2019-11-09
Scientific.Toolworks.Understand.v4.0.811.Incl.Keygen-AMPED.zip
2019-09-07
vscode的remote ssh中需要的ubuntu服务器中的sshd配置文件
2022-06-19
postgresql数据库插件PG-Strom中Scan算子执行流程分析
2022-03-16
CUDAppt.zip
2021-12-28
Shell编程ppt[C++教程网cppcourse[1].com].zip
2020-05-06
跟我一起学C++.zip
2020-05-06
NetworkProgramming-master.zip
2020-05-06
muduo_server_learn.zip
2020-03-12
Docker学习资料总结.7z
2020-02-08
cpptools-osx.vsix
2019-12-05
VSCode Cpptools最新版1.40.2版本.7z
2019-12-04
VSCode Cpptools.7z
2019-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人