- 博客(34)
- 资源 (26)
- 问答 (1)
- 收藏
- 关注
转载 C++内存管理(超长,例子很详细,排版很好)
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。以下这段小程序演示了堆内存发生泄漏的情形:if(!return;delete p;
2020-07-29 14:31:18 689
原创 Linux回收子进程
孤儿进程孤儿进程: 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程。#include <stdio.h>#include <unistd.h>#include <sys/wait.h>int main(void){ pid_t pid; pid = fork(); if (pid == 0) { while (1) { print
2020-07-17 15:54:16 265
原创 RSU NTP时间同步配置方式
RSU NTP同步配时方式 RSU ntp同步配时是基于一个开源工具chrony实现的,这个工具集成在RSU里面了,网上也能搜索到教程,以下是一个参考链接: Centos使用chrony做时间同步-驴得水-博客园 实际在RSU中实现的步骤如下:【第一步】 修改配置文件:/etc/chrony.conf通过增加server的方式,增加NTP服务器,同时可以把GPS同步关掉(注释掉相应的配置即可)。 配置参...
2020-07-16 15:19:01 491
原创 go语言学习笔记,特点
并发编程Go语言在并发编程方面比绝大多数语言要简洁不少,这一点是其最大亮点之一,也是其未来进入高并发高性能场景的重要筹码。golang的并发执行单元是一种称为goroutine的协程。协程又称为微线程,比线程更轻量、开销更小,性能更高。操作起来非常简单。语言级别提供关键字go用于启动协程,并且在同一台机器上可以启动成千上万个协程。协程间一般由应有程序显式实现调度,上下文切换无需下到内核层,高效不少。协程间的通信靠独有的channel机制实现。内存回收GC内存自动回收,再也不需要开发人员管理内
2020-07-15 18:49:53 230
原创 unix环境编程1 环境变量
预处理 编译 汇编 连接cpu中有个MMU,内存处理单元:它的作用是1、处理物理内存与虚拟内存映射的关系。2、设置修改内存访问级别 (0~3级)内核空间的访问级别为0用户空间的访问级别为3PCB进程控制块也叫进程描述符(描述当前进程的相关信息)位于内核空间PCB进程控制块在内核中是以结构体的形式存在的,task_struct包含:进程id,系统中每一个进程有唯一的id 进程的状态,有就绪、运行、挂起、停止 (挂起:等待除cpu外的其他资源,主动放弃cpu) 进程切换时需要保存和...
2020-07-15 16:30:29 253
原创 Linux 进程与程序区别与联系
一,什么是程序?程序是完成特定任务的一系列指令集合二,什么是进程?从用户的角度来看进程是程序的一次动态执行过程 从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位。 进程是资源分配的最小单位 每一个进程都有自己独立的地址空间与执行状态。 像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程三,进程数据结构进程的静态描述:由三部分组成:PCB、有关程序段和该程序段对其进行操作的数据结构集。进程控制块(PCB):用于描述
2020-07-15 09:15:13 799
转载 extern “C”的作用详解
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。 这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已...
2020-07-14 10:20:08 218
转载 看完这篇操作系统,和面试官扯皮就没问题了。
解释一下什么是操作系统操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层通常情况下,计算机上会运行着许多应用程序,它们都需要对内存和 CPU 进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行。2解释一下操作系统的主要目的是什么?操作系统是一种软件,它的主要目的有三种 管理计算机资源,这些资源包括 CPU、内存、磁盘驱动器、打印机等。 提供一种图形界面,就像我们前面描...
2020-07-14 09:31:28 227
转载 GCC为何如此强大? 动态库与静态库
做软件开发的读者,应该对GCC都不会陌生,之所以大家都能知道它,了解它,是因为它有许多特殊、强大的“功能”。一、GCC发展史GNU 项目计划的主要目的是创建一个名叫 GNU’s Not Unix(GNU) 的完全免费的操作系统。该操作系统将包括绝大多数自由软件基金会所开发的其他软件,以对抗所有商业软件,而这个操作系统的核心(kernel)就叫 HURD。但是 GNU 在开发完全免费的操作系统上并未取得成功,直到 20 世纪 90 年代由林纳斯·本纳第克特·托瓦兹(Linus Benedict T
2020-07-13 14:45:35 173
转载 面试官:kill -9 进程杀不掉,怎么办?
用ps和grep命令寻找僵尸进ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'命令注解:-A 参数列出所有进程-o 自定义输出字段 我们设定显示字段为 stat(状态),ppid(进程父id),pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程 运行结果参考如下Z 12334 12339 /path/cmd这时,我们可以使用 kill -HUP
2020-07-13 14:37:20 617
转载 这样处理Shell脚本参数,爽多了!
这样处理Shell脚本参数,爽多了!在《shell必备基础知识》中说到了一些入口参数的基本使用:/home/shouwang/test.shpara1para2para3$0$1$2$3脚本名第一个参数第三个参数有什么不方便之处?看到这里,你可能觉得没什么,这不是学Shell都知道的知识吗?但是你有没有觉得这样使用参数有这样的问题 要知道参数的顺序,确定每一个位置的参数...
2020-07-13 14:25:22 628
转载 太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!
作为 Linux 用户,大家肯定在 Linux 终端下敲过无数的命令。有的命令很短,比如:ls、cd、pwd之类,这种命令大家毫无压力。但是,有些命令就比较长了,比如:$gitpushoriginHEAD:refs/for/master这个时候,你要是敲错了哪怕是一个字母,是不是很崩溃?以前我的作法是,如果敲错了命令,就把光标移动到错误的地方,再进行修改。相信不仅是我,大部分的小伙伴都是这么干的吧。命令比较短还好,万一命令很长,是不是很抓狂?今天,就给大家介绍 Ba...
2020-07-13 14:16:02 117
转载 救命,Linux正在吃掉我的内存!
内存发现自己的空闲空间越来越少,经过一番调查,发现罪魁祸首居然是Linux老大!内存:Linux老大,这也没几个程序在运行,可是你为什么老是占用我的内存啊,内存都快被你吃光了!Linux :你的容量那么大,空间闲着也是闲着,我啊,把那些空闲的空间都当成文件缓存了!内存: 你看看你, 把这文件“拆成”了4K的碎片,这儿放一片,那儿放一片,把我的内存空间搞得乱糟糟的。Linux :这叫做Page Cache , 其实一点也不乱,文件在哪一“片”内存中放着,我记得清清楚楚。我这么做也是...
2020-07-13 14:04:36 150
转载 好久没出去面试了,没想到问这么难...
好久没出去面试了,没想到问这么难...1周前不知道你们多长时间没有参加过面试了,最近这段时间的面试,真的是一个比一个严格!我昨天参加了一线大厂的技术面,被问到了一些并发相关的问题,没想到这么难!如果你不信,这几个问题了解一下: synchronized volatile的CPU原语是如何实现的? 无锁、偏向锁、轻量级锁、重量级锁有什么差别? 线程间通信,同机器进程间通信,跨机器进程间通信,各有什么方法? 线程和纤程的区别的是什么?为什么纤程比较轻量级?
2020-07-13 13:36:42 139
转载 CPU明明8个核,网卡为啥拼命折腾一号核?
中断机制我是CPU一号车间的阿Q,我又来了!我们日常的工作就是不断执行代码指令,不过这看似简单的工作背后其实也并不轻松。咱不能闷着头啥也不管一个劲的只管执行代码,还得和连接在主板上的其他单位打交道。经常保持联系的有键盘、鼠标、磁盘,哦对,还有网卡,这家伙最近把我惹到了,待会再说这事儿。原以为内存那家伙已经够慢的了,没想到跟上面这几位通个信比他更慢,咱CPU工厂的时间一刻值千金,不能干等着,耽误工夫。后来厂里一合计,想了个叫中断的办法。在我们车间装了个大灯,这些单位想联系我们办事儿,就
2020-07-13 13:31:39 164
转载 浅析Linux中的零拷贝技术
浅析Linux中的零拷贝技术本文探讨Linux中 主要的几种零拷贝技术 以及零拷贝技术 适用的场景 。为了迅速建立起零拷贝的概念,我们拿一个常用的场景进行引入:引文在写一个服务端程序时(Web Server或者文件服务器),文件下载是一个基本功能。这时候服务端的任务是:将服务端主机磁盘中的文件不做修改地从已连接的socket发出去,我们通常用下面的代码完成: while((n = read(diskfd, buf, BUF_SIZE)) > 0) write(sockfd,
2020-07-13 13:06:35 115
转载 厉害了!除了find命令,还有这么多文件查找命令,高手必备!
目录1. locate2. whereis3. which4. type1. locatelocate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。.
2020-07-13 11:44:53 514
转载 进程调度,一个调度器的自白
进程调度,一个调度器的自白我是一个进程调度器。我的职责是调度计算机内所有的进程,为他们分配 CPU 资源。1、批处理时代想当初,操作系统创造我时,只是打算让我用FCFS调度算法,简单维护下进程的秩序。但我后来的发展,远远超过了他的想象。1.1 FCFS所谓 FCFS 就是「先来先服务(First Come First Serve)」,每个进程按进入内存的时间先后排成一队。每当 CPU 上的进程运行完毕或者阻塞,我就会选择队伍最前面的进程,带着他前往 CPU 执行。就拿这几个进..
2020-07-13 11:22:29 170
原创 Linux查找命令四剑客awk、sed、find(locate)、grep讲解
find . -iname "ab*" -type f -mtime -3 -size -1M -perm 755. 表示在当前目录下-name 查找关键字-iname 忽略大小写查找含有关键字的文件-type d目录 f文件 l 软链接 "ab*" *匹配一串字符 ?匹配一个字符-size +1M 表示大于1M的,-1k 表示小于1k的文件-perm 755 表示权限为755的文件-mtime -3 modify time 修改...
2020-07-10 23:28:31 2612 1
转载 关于linux can部分的消息过滤设置 Canbus ID filter and mask
Linux CAN 编程详解https://blog.csdn.net/ppdyhappy/article/details/79458458Canbus ID filter and maskhttps://blog.csdn.net/weixin_34253539/article/details/85745180
2020-07-10 17:39:50 1963
转载 内核态和用户态的区别
内核态和用户态的区别当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核状态。此时处理器处于特权级最高的(0级)内核代码。当进程处于内核态时,执行的内核代码会使用当前的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户态。即此时处理器在特权级最低的用户代码中运行。当正在执行用户程序而突然中断时,此时用户程序也可以象征性地处于进程的内核态。因为中断处理程序将使用当前进程的内核态。内核态与用户态是操作系统的两种运行级别,跟intel cpu没有必然联
2020-07-09 22:14:28 461 1
原创 linux后端c++开发人员需要学习的技术栈
数据结构和算法 学完之后要刷leetcode(剑指offer)计算机网络 tcp/ip 协议栈(tcp/ip详解)操作系统 进程和线程 并发 和锁 内存分布调度等等 (深入理解操作系统)设计模式 单例 工厂 代理 策略模式 模版方法(大话设计模式)实践Linux操作系统掌握 shell编程 脚本等等编译/调试工具 Linux平台上 gcc 以及makefile(跟我一起写makefile)要会写 gdb调试工具Linux系统编程 !多线程编程 网络编程 (unix环境高级编程) (L
2020-07-09 22:08:16 630 1
转载 软件系统性能常识
不管是系统设计人员、开发人员还是测试人员,要构建高性能的系统,对于系统性能的一些常用术语都不了解,那是无从做起的,这里主要介绍几个软件性能指标的术语及计算方法,便以在性能优化及性能评判时有的放矢:目录1.响应时间2.并发用户3.吞吐量4.思考时间1.响应时间响应时间是系统对用户请求作出响应的时间,响应时间是用户对系统性能最直观的感受,因此直接表现了系统的性能。影响系统响应时间的因素主要有以下几个: 1)网络传输时间:包含请求信息传送致服务器、服务器信息...
2020-07-09 15:35:43 904
原创 mosquitto_pub sub 命令参数说明和举例
mosquitto_pub 命令参数说明1. -d 打印debug信息2. -f 将指定文件的内容作为发送消息的内容3. -h 指定要连接的域名 默认为localhost4. -i 指定要给哪个clientId的用户发送消息5. -I 指定给哪个clientId前缀的用户发送消息6. -m 消息内容7. -n 发送一个空(null)消息8. -p 连接端口号9....
2020-07-09 07:32:32 2717 1
原创 二维坦克大战游戏代码开发
这是我实际面试中,遇到的一个题目,编写一个坦克大战游戏。一开始感觉懵,后来代码写写就好了。先放一张图片,后面再添加对应的代码。
2020-07-07 23:14:10 455
转载 无锁编程基础
背景我们处在技术快速发展的时代,竞争变得前所未有的激烈,不仅要十八般武艺俱全,还得选对正确的技术,跟上发展的脚步,并贴上精研某个专业方向的标签。我们不仅要面对多线程和并发,还要考虑多核时代的并行计算,无锁编程或许是一种选择,可能会提升性能,也可能避免锁的使用引起的错误,同时会带来编程习惯的变革。不可否认,无锁技术是目前各种并发解决方案中比较受争议的一种,尽管它基于最基本的编程技术,不依赖于任何语言和平台,但是这项技术有些诡异,掌握起来颇有难度,有点曲高和寡,所以没有大面积应用在编程中。技术本身
2020-07-07 20:16:41 524
转载 linux常用小知识点
答案linux考试题1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(b)A.NID B.PID C.UID C.CID答:w命令查看用户tty终端信息ps -ef|grep pts/02.下面那个用户存放用户密码信息(b)A./boot B./etc C./var D./dev3.用于自动补全功能时,输入命令或文件的前1个或后几个字母按什么键(b)A.ctrl B.tab C.alt D.esc4.vim退出不保存的命令是(a)A.:q B.q
2020-07-06 17:15:25 1288
原创 C++之future和promise
C++之future和promisefuture和promise的作用是在不同线程之间传递数据。使用指针也可以完成数据的传递,但是指针非常危险,因为互斥量不能阻止指针的访问;而且指针的方式传递的数据是固定的,如果更改数据类型,那么还需要更改有关的接口,比较麻烦;promise支持泛型的操作,更加方便编程处理。在并发编程中,会使用各种回调方法来处理异步返回的结果,如果使用不慎将会让代码分散且难以维护,这里我也是踩了不少坑。既然有坑,就一定有解决办法,C++11的future提供了很好的解决方案,让代码
2020-07-06 10:17:15 2773
转载 如何定位内存泄漏问题
如何定位内存泄漏问题Things You'll NeedProficiency in C++ C++ compiler Debugger and other investigative software tools1Understand the operator basics. The C++ operator "new" allocates heap memory. The "delete" operator frees heap memory. For every "new," you
2020-07-04 16:21:21 307
转载 交易撮合系统···实现得比较简陋
#include <iostream>#include <queue>#include <algorithm>#include <map> using namespace std;class Exchange { public: static int count; //静态数据变量为每个委托赋予独一无二的id static bool match(const Exchange &a, const Exchange &b) .
2020-07-03 21:04:35 470
原创 C++知识点小结(趁热搬砖三年半的小码农) 2020年07月2日整理
c++最好用易用的新特性:auto/decltype https://blog.csdn.net/zyc2018/article/details/93591189 nullptr range-for usingc++有哪些坑?内存泄漏的解决方案:智能指针 内存池学习优秀的c++源码Nginx Leveldb Envoy Folly Boostvector<int> month; int cnt=1; m...
2020-07-02 09:58:39 279 2
转载 什么是进程?什么是线程?总结
1.什么是进程?什么是线程?进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因
2020-07-01 21:35:26 697
原创 Oracle面试题,带答案!
1.你要对操纵Oracle数据库中的数据。下列哪个选项表示Oracle中select语句的功能,并且不需要使用子查询(C)A.可以用select语句改变Oracle中的数据B.可以用select语句删除Oracle中的数据C.可以用select语句和另一个表的内容生成一个表D.可以用select语句对表截断2. 你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用(C)A.表 B.序列 ...
2020-07-01 21:31:10 1919
车载智能芯片白皮书2023
2023-07-31
adaptive autosar R22-11 官方文档
2023-04-20
AP_autosar简介.doc
2020-08-26
autosar全面学习笔记.docx
2020-08-17
车辆编队行驶.docx
2020-08-12
ConvDBC_TO_Code.tar.gz
2020-08-06
2020 C-V2X“新四跨”暨大规模先导应用示范活动.pdf
2020-07-23
面向C-V2X的多接入边缘计算服务能力开放和接口技术要求.docx
2020-07-08
《ROS入门21讲》课件&源码.zip
2020-04-30
CANoe 窗口与功能模块介绍.pdf
2020-03-11
CANdb___Manual_EN.pdf
2020-03-11
汽车CAN总线通信矩阵设计.pdf
2020-03-11
CAN总线简明教程.docx
2020-03-11
CANoe 操作手册.docx
2020-03-11
20170914-泛型编程.pdf
2020-01-08
c语言100集笔记.c
2020-01-08
智能化 汽车行业5G专题:5G推动车联网与自动驾驶腾飞.pdf
2020-01-08
智能驾驶深度学习初探.pdf
2020-01-08
libpaho-mqtt3as.so.zip
2019-11-23
自动驾驶的深度强化学习框架.pdf
2019-07-24
这个翻转句子中单词的程序哪里错了
2018-03-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人