自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 win11如何做桥接?

设备a,win11笔记本,有wifi有网口;设备b,ubuntu20.4工控机,有网口wifi。

2024-01-02 17:52:12 1331

原创 【无标题】

总的来说,跨平台的知识不是很难懂,但是很繁琐。如果出问题了,需要耐心的debug。C++下的跨平台开发往往会使代码变得丑陋。做好对象的抽象;做好函数的封装最后即使需要跨平台,也不至于太难办。

2024-01-01 17:41:25 386

翻译 Modern C++ for C 程序员 第5部分

内存分配很困难,C++提供的各种智能指针使其更容易。很奢侈但带来包袱,通常就足够好了,完全没有开销。C++努力避免对象的不必要复制,添加移动构造函数使这一点明确。通过使用std::move,可以将实例存储在容器中,这既安全又快速。智能指针简化了内存管理,unique_ptr用于独占所有权,shared_ptr用于共享所有权。移动语义通过转移资源所有权优化性能,避免复制开销。结合移动语义和右值引用,可以安全高效地在容器中存储unique_ptr。

2023-07-30 23:04:11 162

翻译 Modern C++ for C程序员 第2部分

在“面向C程序员的C++”第2部分中,我们展示了类实际上已经在C中广泛使用的概念,只是C++使其更容易。另外,C++类(和结构)可以有构造函数和析构函数,这对于确保在需要时获取和释放资源非常有用。基于这些基本要素,C++提供了不同智能水平和开销的智能指针,满足大多数需求。此外,C++为线程、原子操作和锁提供了很好的支持。最后,异常是一种强大的方式来处理错误。

2023-07-30 15:50:43 222

翻译 Modern C++ for C 程序员 第4部分

在这长长的第4部分中,我们已经深入探讨了lambdas的一些细枝末节,以及它们如何用于自定义排序,如何存储以及何时是个好主意。其次,我们通过增强代码索引器以查找部分词的能力,通过将无序词容器排序到一个平面向量中,探索了算法和容器之间的交互。我们还研究了如何使用某些“C式”技巧来使此过程既节省内存又更危险。我们还查看了C++提供的丰富算法数组,这得益于代码在容器和算法之间的分离。在进行任何数据操作之前,请查看现有算法,如果已经有满足您需求的算法就直接使用它。

2023-07-29 16:52:59 92

翻译 Modern C++ for C 程序员 第3部分

C++ 提供了继承和多态类,这些有时很有用,肯定比手动编码的等价实现更好,但绝对不是强制使用的。作为从 Object 派生所有内容的替代方法(就像一些语言所做的那样),C++ 提供了模板,它提供了适用于任意类型的泛型代码。这就是std::sort能够比 C 中的qsort更快的原因。模板非常强大,是 C++ 标准容器数组如std::map等的基础。使用基于范围的 for 循环和迭代器,可以查询和修改容器。

2023-07-27 19:52:01 57

原创 lilnux man page:epoll(翻译+注释)

每当通过dup(2)、dup2(2)、fcntl(2) F_DUPFD或fork(2)复制文件描述符时,都会创建一个引用相同内核表的新文件描述符。当在struct epoll_event的events字段中设置EPOLLWAKEUP标志时,从事件排队开始,通过返回该事件的epoll_wait(2)调用,系统将一直保持唤醒状态,直到后续的epoll_wait(2)调用。但是,可以向同一个epoll实例添加文件描述符的重复项(dup(2)、dup2(2)、fcntl(2) F_DUPFD)。

2023-07-16 11:38:06 126

原创 如何查找linux系统中某个命令的man page?

【代码】如何查找linux系统中某个命令的man page?

2023-07-16 09:44:11 73

原创 linux man page:open(翻译和注释)

如果内存缓冲区是私有映射(即,使用mmap(2) MAP_PRIVATE标志创建的任何映射,这包括堆上分配的内存和静态分配的缓冲区),则不应该同时运行O_DIRECT I/O和fork(2)系统调用。文件创建标志是O_CLOEXEC、O_CREAT、O_DIRECTORY、O_EXCL、O_NOCTTY、O_NOFOLLOW、O_TMPFILE和O_TRUNC。但是,为了向后兼容,O_DSYNC被定义为历史O_SYNC的值,O_SYNC被定义为一个新的(两位)标志值,包含O_DSYNC标志值。

2023-07-15 17:02:40 332

原创 智能语音--面试总结

回想起来,这个面试表现的很糟糕。好的面试官会引导你回答问题,但是这并不是面试官的任务。答:(不要回答是,否则会让人以为你没有独立开发的能力,因为他会以为你对linux基础接口没有认识。或者回答是,但是补充说明自己对这个有认识,并且写了开源项目练手。答:(先讲socket编程的流程,再讲开发中没有用过,只维护过相关带代码写过damo。如果问题和知识、服从性无关,就向独立开发能力上考虑(中小公司),或者往持续学习考虑(大公司)。面试大概要考虑的东西:知识(理论知识、操作知识),服从性,独立开发能力,持续学习。

2023-07-15 09:24:20 536

原创 select manual page翻译和注释

前言:这连个是多路IO模型中最常用的。简单的说,这个模型是为了用1个线程监控尽可能多的io请求。

2023-07-09 21:33:17 137

原创 独立开发时遇到的问题

p做返回值,有坑:如果是return返回,不能返回临时变量的指针,必须是malloc的。如果是出参返回,注意将内存拷贝到p指向的地方,而不是改变p的指向,因为p本身也是临时变量,改变p不影响实参的p值。v作为返回值,有坑:如果是return返回,没问题,返回值会被拷贝出去。如果是出参返回,有问题,因为实参被拷贝进形参,再作为局部变量使用。2,b join c和d。此时如果a,b中有共同变量,则需要注意数据的同步,否则可能出错。1,如果a是进程,且没有join b,那么a结束后,其创建的线程自动死亡。

2023-07-09 10:52:04 344

原创 怎么检查linux下的网络情况?[ping netstat ifconfig]

1,用ping检测网络情况:网速,稳定程度;2,用ifconfig检查某个接口(网卡)的网络包收发情况,尤其是有无丢包的情况;3,用netstat查看某一个网络连接的状态,接收/发送队列,启用的程序;

2023-07-03 17:53:30 1229

原创 tcpdump解析

tcpdump抓到的包是经过协议处理的,也就是说如果因为窗口大小、队列大小而丢失的包是不会抓到的。但是可以通过ifconfig的tx,rx看到。tcp抓到的包导入wireshark中,可以通过wireshark相关工具分析丢包率等信息,更加方便实用。

2023-07-03 12:02:15 496

原创 Linux时间接口

当太阳活动正常后,将时钟回拨2h,时间回到正常,夏令时结束的前两个时刻必然会走两边,这是需要注意的地方。传入time中获得的时间,获取到struct tm表示的时间形式。获取系统的utc时间,即从1970-1-1 0:0:0开始的秒数,用长整型表示这一时间。传入time中获得的时间,获取到struct tm表示的时间形式。和gmtime不同的是,这个接口拿到的tm是包含了时区的。1,这系列的接口都有一个xxx_r的版本,主要区别是传入了自定义的buffer,避免了使用库自定义全局变量带来的风险。

2023-07-01 16:23:07 292

原创 __attribute__((xxx))是什么?在干嘛?

_attribute__ 是一种指定编译条件的机制,属于GNU特性之一。该机制可以用于变量、函数和类型。常见的weak、unused是其部分特性关键词,用于替代括号中的xxx部分。注意:前后各有两个 _ ,表明只有在编译选项中加 -Wall时,该特性才能正常工作。

2023-06-26 12:13:03 71

原创 linux监控命令分析

比如使用ps + grep拿到应用的pid,再结合top看它的动态占用,结合/proc/pid/xxx看它占用的资源。-u:和 -au 显示的进程类型相似,但是内容上增加显示占用的vsz(虚拟内存),物理内存(rss),当前状态(stat)等信息。只显示终端明确的进程。-p pid:打开指定进程的涉及到的文件,包括目录(dir),普通文件(reg),字符(chr),管道(fifo),indoe文件(a_innode).-x:除了当前用户外,显示root等用户下的进程。-a:显示当前用户下,终端明确的进程。

2023-06-24 17:58:22 212

原创 磁盘 - 内存 - 中央处理器缓存 / 用户缓存区 - 内核缓存区 / 零拷贝

梳理了缓存区和计算机硬件设备间的关系。

2023-06-23 17:59:51 886

原创 论文写作拾遗

添加尾注如果想要添加如下所示的尾注,亦即在页面分栏的情况下对页面整体添加尾注,则需要在word中操作,先调整版本再添加尾注。具体操作自行百度;方程/方程型表达式大小与正文内容高度不一致;需要调整mathtype中字体的大小,具体:尺寸——更多。这一尺寸通常以pt为单位,需要调整至相应的pt(如小五字体—9pt)。大小合适之后,即使段落布置按照网格排列,整体内容的大小也是一致的。3.论文调整顺序建议将论文格式调整放在最后,因为在修改过程中的增删都有可能影响格式,不如放在最后,毕其功于一役。.

2021-09-01 20:47:47 81

原创 Leetcode C++拾遗

注意:1)只读与常量这里的const应当属于兼容了C++98和C++11,因为C++11中倡导使用constexpr代替const表达“常量”的含义,const值负责表达“只读”的含义。这里显然在使用const表达“常量的含义”2)代码逻辑对于每个nums[i] 而言,它的最长子串就是nums[i-1] 对应的子串+1.用一个for循环求对每个nums元素求子串长度。用另一个for循环遍历nums[i-1] 及其之前的元素,寻找 i 之前的最大子串。3)vector使用事项这里不可以使用pus.

2021-05-19 22:37:25 93

原创 某型雷达的报文收发实录

某型雷达的报文收发实录前言:工作中需要与某型激光雷达进行通讯,读写报文解析出相应的角度、位置。在目前的工作中,切实遇到的问题是报文的收发,这里记录之。(以下内容尚未进过实践检验2020-6-20)​ 激光雷达的报文的接收,使用的API为winsock2的recv()函数。遇到的最主要问题是报文格式→代码中的接收方法→应当被处理的格式。涉及的主要知识出乎意料的简单——char,unsigned char;bool SendTelex(const uchar * const Telex){

2020-06-23 19:46:16 670

翻译 章节3:拥抱现代C++

文章目录章节3:拥抱现代C++item 7:区别()与{ }两种对象创建方法章节3:拥抱现代C++item 7:区别()与{ }两种对象创建方法在C++中,对象的创建方法可以有以下几种:int x(0); //① 使用括号初始化int y = 0; //② 使用等号初始化int z { 0 }; /③ 用中括号初始化int z = {0}; //本质还是中括号初始化;本文不予考虑;常见误解之一:②处发生了复赋值。解释:对于内置类型而言(比如int),二者的差距是学术上的,可以忽略。

2020-05-14 21:43:03 111

原创 The inferior stopped because it received a signal from the Operating System.

前景提要:要理解这个错误的根源;——————————————根源:用户的指针指向了系统的内存区域;表象:“程序异常结束”“.exe crashed” ;编译可以通过,dedug时出现“The inferior stopped because it received a signal from the Operating System.”————————————————出现原因:前面的博文提到过,可能是对new执行了[ ]delete操作,导致用户程序尝试对系统内存进行删除;今天遇到了同样的

2020-05-08 18:32:57 6696 4

原创 Qt multiple definition of (function)

前景:做项目代码优化,将原来的代码按简单工厂模式进行重新组合编写;对整个模块的文件夹进行分类、归纳。中途,出现这一问题。问题详述:某一类中的全部函数都有error:multiple definition of “function name”。解决过程:首先。用百度查找,大多数是multiple definition of variable;这一问题的解决方法事关全局变量的声明,不可做本问题的...

2020-05-01 21:37:49 2180 3

原创 ubuntu1604+cmake3.5.1+GCC5.4

写在前面:除了老板的事,啥都想做。。。本来打算看Mytinystl的,但是总提不起兴趣。刚好看到gitee上有一个ZLToolKit 项目,看起来挺有趣。关键是①C++11,多种网络模型与之前的学习相互呼应;②已经商用;虽然功能清单中的东西大多(全部)看不懂,但是先看这玩吧;————————————————————————————————————————一、Ubuntu1604可以在国内的网...

2020-04-19 16:37:46 196

转载 虚函数,虚函数表,虚析构;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/onlyongwang/article/details/80636109————————————————版权声明:本文为CSDN博主「onlyongwang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及...

2020-04-17 11:32:45 135

原创 职责链模式

对这一模式很感兴趣;在前面的观察者模式中,我将它与现有的处理CAN报文的方式做了比较。但是在看到 “职责链模式” 后,觉得这一模式更加适合替代原有的 “链表+回调函数” ,起到简化代码的处理;#include <iostream>using namespace std;//尝试实现“责任链”模式;任务在责任链中循环,知道遇到可以处理它的部分;class NodeOfCha...

2020-04-17 10:38:17 76

原创 设计模式大白话

参考资料——大话设计模式,csdn,简书;—————原则的大白话——————三个原则:单一原则 开闭原则 依赖倒转解释:单一原则——类实现的功能单一;开闭原则——对增加开放(可扩展),读修改关闭(模块性)依赖倒转——(名言2句)①上层不依赖下层,二者依赖抽象;②抽象不依赖细节,细节依赖抽象;这两句话值得单独说,结合当前项目的理解:①执行器总类与各种具体的实现类时不相互依赖的(可...

2020-04-07 18:52:08 227

原创 闲聊设计模式学习规划

写在前面:设计模式是肯定值得学的,但是这个东西怎么界定呢?前次从开源项目中的框架,既可以算是工厂模式,也是用到了开闭原则,依赖倒转;也可以理解其用到策略模式。水无定式;做了这样一个规划:先将设计模式23个过一遍,用大白话解释一下;之后再从从手上的工作开源项目上边学边用边总结;————————————————————————————关于手上下载的开源项目:comtool(基于qt的串口调试工具...

2020-04-07 16:39:00 125

原创 从开源项目学到的结构

写在前面:keep reading,keep coding。———————————————————————反正这年头,是猫是狗都会说“高内聚低耦合”,“解耦”;你再问,怎么做到?“功能明确,架构良好”,要“猫是猫科类,老师也是猫科类” ;再问,怎么做到?“要功能明确,多用设计模式”还是不懂怎么做到?‘’多用设计模式,功能明确‘’卒、、、———————个人总结线————————...

2020-04-04 23:18:48 109

原创 震惊,无知少年遭受社会毒打!!!(析构,类的析构)

上午老师给了一个问题:The inferior stopped because it received a signal from the Operating System.原本是一位出现了野指针,查了之后才知道,是空指针问题。Qt里用debug调试,问题再这里:这两个都是Qsetting出来的指针,且析构之前已经判空;罪了,原因竟然是: 不能用 delete [] 析构!!!惊讶,因为...

2020-04-01 17:44:00 119

原创 链表倒置

写在前面:教育到底是向上的阶梯,还是限制家庭的脚链呢。STL库中有函数reverse()可以实现这一功能;自实现如下:#if 0 ②vector——类似数组,相连的内存空间。这样的内存方式适合随机存取;而当在其首位插入数据时,剩下的位需要逐位后移,时间复杂读O(n); ③list——双向链表,分散的内存空间。使用指针可以方便的在头尾插入数据;当访问数据时,需要逐个的对比,时...

2020-03-31 22:48:13 138

原创 关于C++ STL

写在前面:桌子在那里,我不去搬它,它就不会动。在B乎等网站,看到C++最大的诟病之处就是库。鉴于此,从当前开始有意识的学习,使用STL库。这位博主与耐心细致的总结:原文链接:https://blog.csdn.net/luxiaoyu_sdc/article/details/6416043我做了word文档,对版式做了一些调整(不知如何上传)#include <iostream&...

2020-03-31 13:13:05 77

原创 数据的收发格式

写在前面:遇到问题——解决问题——讲述(自言自语、教授别人,讨论)——解决上一步骤中遇到的问题。感觉用这种螺旋式上升的步骤理解一个问题,比较深刻。在学习的开源项目是一个网络调试助手。其中有一项是“HEX发送”。这一问题引发了一个非常有趣的思考:串口的数据是如何发送接收的???(这里强调数据格式,而不是硬件)在已经可以正常运行的某个项目中,有如下代码:int TCPCommunicati...

2020-03-29 16:17:17 184

原创 关于Qdebug,中文显示

一,关于qdebug头文件:有QtDebg,Debug,qDebug.h,进入头文件中不难发现,前两者就是后者。只需要在头文件中添加后者即可。报错: qDebug<<tmpstr2;正确格式为: qDebug()<<tmpstr2;之前使用pritf(“%s”, tmpstr2.tostdstring().C_str());输出中文。二,关于使...

2020-03-29 11:47:12 1494

原创 char*A string B char C[10] “abcd”

规则:①A总体可变,局部不能变;②C局部可变,总体不能变(为了押韵这里有错误)③B二者皆可。 //验证一下char* char[] string的相互转换 char * charpoint = "aaaaa"; //warning:forbid converting a string constant to 'char *'// const char* charpo...

2020-03-27 13:19:12 510

原创 牛客网字符串识别数字

原题是为了识别数字,实现如下:#include <iostream>#include <algorithm>#include <windows.h>using namespace std;class solution{public: solution() {} bool isNumberic(const char* str) ...

2020-03-27 12:38:57 213

转载 接上文csapp-开源项目学习1

上文认为纯理论学习可能不太适合我,所以在网上找了一些开源项目,主要是Qt与C++联合编写。第一篇:串口调试助手。关于语言转换,这篇博文十分详细了,https://blog.csdn.net/imcabbage/article/details/51025118?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=...

2020-03-25 21:36:01 148

原创 csapp阶段性学习心得

像是吃了巧克力一样的屎。第六章摘录:为了写出缓存友好的代码,可以看看以下规则①将注意力放在内循环中。②通过按照数据对象存储在内存中顺序、以为1的步长读取数据,从而使得程序中的空间局部性最大。③一旦从存储器中读取了一个数据对象,尽可能多的使用它,从而使程序的时间局部性最大。———————————————————————————学习csapp的感觉十分糟糕。大量的理论知识,无法验证的实...

2020-03-24 21:02:00 200

原创 5.13---5.5---5.6 深入理解计算机系统

#include <iostream>#include <windows.h> //微秒计时器#include <time.h> //clock函数using namespace std;//旨在验证5.5\5.6的指令级并行,减少循环次数,减少内存访问次数对于运算时间的影响;//验证结果://与预期严重不符!!!version2...

2020-03-23 21:52:45 269

TryToUseLocalConstruct.rar

代码简单实现博文里描述的结构;象征性1积分(日记一样的东西)

2020-04-04

STL库函数的一些整理

stl库函数的一些整理

2020-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除