自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 STL unordered_set的eraseyong fa

In C++11 erase方法返回新的指针 指向下一个有效的元素,避免在原来失效的迭代器上做增长。但是这里还有一点是,要想彻底清除内存值,需要调用clear函数。用循环的方法删除内置范围的元素,这种做法是未定义的,也就是说产生未知的操作。如下unordered_set的erase操作导致程序崩溃,crash。这个时候 ++__begin 被调用,元素被删除,迭代器是无效的。

2023-07-17 15:05:56 261

原创 两个模块类的static静态成员相互依赖,释放顺序错误导致crash问题

两个业务模块中,类的static静态成员相互依赖,如果由系统控制释放顺序,顺序错误导致内存破坏的crash问题,使用valgrind扫描结果展示的内存问题,其实是最后的结果,但并不是问题的root cause。

2021-12-02 16:14:49 629

原创 C++编译过程中析构函数只声明未实现报错

/usr/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function具体分析参见如下文章:undefined reference to 'vtable for std::length_error' 问题解决_Blog of Chauncy Wang-CSDN博客

2021-11-24 14:58:42 1448

原创 getAddrInfo与DNS域名解析与ping

ping某个域名的详细过程 - lazypark - 博客园DNS客户端异常如何解决?_zhaowen_cug的专栏-CSDN博客_dns客户端

2021-11-21 13:30:11 2143

原创 团队建立和管理

新人融入团队的温度,注意每一句话对新人的影响,多鼓励做事的专业性(团队的开会,汇报)做事提前量

2021-10-21 16:11:35 84

原创 GGA的经纬度的度分转换函数

double dmm2deg(float dmm){ return floor(dmm / 100.0) + fmod(dmm, 100.0) / 60;}

2021-09-08 14:08:41 1122

原创 Linux下网络模拟 iptables

! /bin/shecho "filter the bds3 cmd"iptables -A OUTPUT -m string --algo bm --string "rtcmSignal" -j DROPecho "start process"/mnt/hgfs/workspace/repos/yunduanyiti/sdk-core-1.9.0/sdk-core/demoecho "sleep 11s"sleep 11echo "cancel filter"iptables -D O.

2021-09-08 10:35:00 341

原创 Linux下的内存管理工具ASAN

g++编译时,加入如下参数,引用Linux的ASAN内存管理工具,可以有效提高查看程序crash时的栈帧信息;使用方法如下:g++ -fsanitize=address -fno-omit-frame-pointer test_123456.cpp -o demo.bin -lasan如果出现程序crash的问题,则会直接打印相关栈帧信息。如下图示:...

2021-08-25 11:08:59 404

原创 C++常用功能

获取C++ 二维数组的行和列大小sizeof(Arr[0][0])//一个元素占用的空间,sizeof(Arr[0])//一行元素占用的空间,sizeof(Arr)//整个数组占用的空间int size=sizeof(Arr)/sizeof(Arr[0][0]);//数组元素总数int rows = sizeof(arr) / sizeof(arr[0]);//行数int cols = sizeof(arr[0]) / sizeof(arr[0][0]);//列数...

2021-08-23 10:19:20 104

原创 计算有效的字符串长度

规则 :给定一个只包含两种字符的字符串:(,) ,其他字符均为无效1、任何左括号(必须有相应的右括号)。2、任何右括号)必须有相应的左括号(。3、左括号(必须在对应的右括号之前)。4、有效字符的长度为左括号和右括号的相加。#include<iostream>#include<string>#include<vector>#include<stack>using namespace std;int cal...

2021-08-19 10:03:56 1602

原创 指定分隔符分割字符串

/*********************************************************************** Function: split_str* Description: Splits the target string by the specified character* Input: psrc: Pointer to the data to be processed psrc_len: The ...

2021-08-14 16:38:13 278

原创 Makefile -D 配置文件转换为编译宏

-include $(DOT_CONFIG_FILE)-include $(IDS_SDK_ROOT_PATH)/project.config+CFLAGS += $(shell sed -n -r 's/^(CONFIG_\w+)\s*=\s*y/-D \1/p' $(DOT_CONFIG_FILE))

2021-08-10 10:27:21 106

原创 软件开发流程和规范

1 能力和经验 1.1 是否有软件质量管理体系和流程文件或者具备汽车行业相关资质(CMMI,ISO26262, ISO/IEC 15504 v.2.5 (ASPICE)等) * 1.2 是否有类似产品的配套经验 1.3 该组织是否有满足项目要求的足够数量的软件工程师? ...

2021-06-24 19:41:28 866

原创 unix内核消息队列的实现(C),另附信号量和共享内存

send.c: #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <string.h> typedef struct msgbuf{ //函数要求用户自定义一个结构体 long mtype; char mtext[128];//默认12...

2021-06-23 11:54:50 187

原创 docker容器不能安装git, apt install git不能执行

在cocker1、使用命令:apt-get update2、apt install net-tools

2021-06-20 11:19:28 865

原创 阿里云安全规则,开发所有端口

2021-06-12 10:34:25 141

原创 产品流程图

2021-06-07 15:53:11 102

原创 2021-06-07

如上图,Makefile中在第一个目标all之前,执行ln -s 会导致如下告警:应该将ln -s 操作放在目标中进行执行

2021-06-07 13:46:07 73

原创 项目管理-需求分析

2021-06-03 16:19:05 72

原创 项目管理积淀-测试报告

1 引言1.1 编写目的1.2 项目背景1.3 系统简介1.4 术语和缩略语1.5 参考资料2 测试概要2.1 测试环境与配置2.2 测试方法和工具3 功能测试3.1 测试概要(千寻研发部分列表报表)3.2 管理端模块A(大唐V2X协议部分报表)4 性能测试4.1 传输数率5 可靠性测试5.1 RTCM可靠性6 安全性测试7 易用性测试7.1 APP&OBU等项8 兼容性测试(一致性)9 整体测试结果分析9.

2021-06-03 16:13:45 101

原创 常用的文件管理工具

üpython -m SimpleHTTPServerüfilebrowser

2021-05-29 11:16:58 400

原创 为什么优秀的嵌入式程序员很少

欢迎大家积极留言。 最近上猎聘上看了下,发现市场对优秀的嵌入式程序员需求很大,懂Linux内核,QNX实时操作系统或者FreeRTOS,能熟练移植内核到嵌入式系统,懂驱动(各种驱动I2C,UART,CANFD,SPI等等)。精通C/C++这是基本要求,精通TCP/IP 。等等要求不一而足。 很多人写了几年代码,有机会到小组长了,就会放弃写代码,这是经常看到的上升通道。当然有很多技术确实提升不了,这中情况就不用讨论了。...

2021-05-27 16:33:25 405 1

原创 socket Linux超时返回值判断

socket 超时时间设置方法:intnNetTimeout=1000;//1秒,//设置发送超时setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char*)&nNetTimeout,sizeof(int));//设置接收超时setsockopt(socket,SOL_SOCKET,SO_RCVTIMEO,(char*)&nNetTimeout,sizeof(int));这样做在Linux环境下是不会产生效果的,须如下定义:str...

2021-05-27 16:25:54 458

原创 判断DNS是否正常 Wireshark

判断设备网路白名单是否正常,其中关于DNS是否可正常解析域名的操作,通过wireshark抓包来判断,如下图。

2021-05-25 11:12:42 564

原创 Linux top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器top参数详解第一行,任务队列信息,同 uptime 命令的执行结果系统时间:07:27:05运行时间:up 1:57 min,当前登录用户: 3 user负载均衡(uptime) load average: 0.00, 0.00, 0.00 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每...

2021-05-21 13:32:06 74

原创 shell 和钉钉钩子机器人上报

#!/bin/shcurl 'https://oapi.dingtalk.com/robot/send?access_token=96259f60249d4e270fe6847c4f9c8e5a4daea4e94bd6e681592e6e28e41f9509 ' \-H 'Content-Type: application/json' \-d '{"msgtype": "text","text": {"content": "IP:'$(ifconfig eth0 |grep inet | grep

2021-05-21 10:11:22 85

转载 Linux cp命令的内涵

cp是啥 ? 是的,就是 Linux 是 Linux 下最常用的命令之一,copy 的简写,小伙伴 100% 都用过。cp 命令处于 Coreutils 库里,是 GNU 项目维护的一个核心项目,提供 Linux 上核心的命令。今天用cp命令,把小伙伴惊到了,引发了我对其中细节的思考。背景是这样的,奇伢今天用cp拷贝了一个 100 GiB 的文件,竟然一秒不到就拷贝完成了。一个 SATA 机械盘的写能力能到 150 MiB/s (大部分的机械盘都是到不了这个值的)就算非常不错了,所以...

2021-05-10 10:50:59 603

原创 Linux free命令

那么,应用程序和linux会怎样看待buffers/cache呢?如下图: 在旧版linux中,free命令的结果把buffers/cache归纳到used中。可见,这是站在linux视角的(如下图片是另外一台服务器): 而在新版linux中,free命令的结果没有把buffers/cache归纳到used中。可见,这是站在应用程序角度的,如下: ubuntu@VM-0-15-ubuntu:~$ free -wh ...

2021-05-10 10:40:33 335

原创 GPSD创建

#include <stdlib.h>#include <fcntl.h>#include <stdio.h>#include <pthread.h>#include <string.h>#include <errno.h>#include <sys/stat.h>#include "qxwz_ids_log.h"#include "qxwz_gpsd_adpt.h"static pthread_mute

2021-05-08 14:06:21 212

转载 std::lock_guard作用域范围

std::lock_guard作用域内自动上锁解锁对于不同线程访问统一资源时,为了避免冲突一般都通过对目标共享变量上锁和解锁,让共享变量互斥第一种方式:一般情况可以在共享变量前后分别上锁解锁,至少需要以下三个操作复制代码// 定义锁std::mutex m_mutex;// 上锁m_mutex.lock();// 上锁和解锁之间为对共享变量的访问操作.....// 解锁m_mutex.unlock();第二种方式:使用std::lock_guard,在std::loc

2021-05-03 09:01:05 3650

原创 Linux 系统命令之free

total usedfree shared buffers cachedMem: 255268 238332169360 85540 126384-/+ buffers/cache: 26408228860Swap: ...

2021-04-23 13:47:24 86

原创 虚函数和纯虚函数的区别

1.虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstractclass),而只含有虚函数的类(class)不能被称为抽象类(abstractclass)。  2.虚函数可以被直接使用,也可以被子类(subclass)重载以后以多态的形式调用,而纯虚函数必须在子类(subclass)中实现该函数才可以使用,因为纯虚函数在基类(baseclass)只有声明而没有定义。3.虚函数和纯虚函数都可以在子类(subclass)中被重载,以多态...

2021-04-10 20:37:15 338

原创 protobuf安装遇到的坑

在安装了protobuff,https://github.com/protocolbuffers/protobuf/releases/tag/v3.15.6然后安装protoc,执行命令,sudo apt install protobuf-compiler执行protoc --c_out=. xxxxxx_cloud.proto,看到如下报错。protoc-gen-c: program not found or is not executable--c_out: protoc-gen-c: P

2021-04-02 16:30:54 1565

转载 valgrind的使用方法

1.2 工具Valgrind的最新版是3.11.0,它一般包含下列工具:1.Memcheck最常用的工具,用来检测程序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc()/free()/new/delete的调用都会被捕获。所以,它能检测以下问题:对未初始化内存的使用;读/写释放后的内存块;读/写超出malloc分配的内存块;读/写不适当的栈中内存块;内存泄漏,指向一块内存的指针永远丢失;不正确的malloc/free或new/delete匹配;memcpy()相关函数

2021-04-01 12:55:54 327

原创 malloc分配机制

malloc采用了两中不同的方式来处理内存申请。1. 若分配内存小于 128k ,调用 sbrk() ,将堆顶指针向高地址移动,获得新的虚存空间。2. 若分配内存大于 128k ,调用 mmap() ,在文件映射区域中分配匿名虚存空间。...

2021-04-01 11:38:32 137

原创 git pull 拉取最新代码时,报错,原因是虚拟机Linux没有空间导致的

来自 code.wz-inc.com:IDS/QXV2X-CORE* branch dev -> FETCH_HEAD在您刚刚获取到的引用中没有合并操作的候选。通常这意味着您提供了一个通配符引用规格但未能和远端匹配。

2021-03-24 11:17:19 566

原创 XCODE 创建新的工程,jump to definition快捷键生效

1.创建工程:2.选择要加入工程的文件拖入相关工程,如下图左边红圈,选择按照右边红圈所示

2021-02-26 15:50:18 328

原创 GCC -C main.c -o a.o

GCC-o选项使用举例1) 将源文件作为输入文件,将可执行文件作为输出文件,也即完整地编译整个程序:$ gcc main.c func.c -o app.out将 main.c 和 func.c 两个源文件编译成一个可执行文件,其名字为 app.out。如果不使用 -o 选项,那么将生成名字为 a.out 的可执行文件。2) 将源文件作为输入文件,将目标文件作为输出文件,也即只编译不链接:$ gcc -c main.c -o a.o将源文件 main.c 编译为目标文件 a.o。如果.

2021-02-20 14:08:01 1044

原创 Linux sed

如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行[root@xiaowu shell]# sed -i'/bbbb/a\xiaowu\nxiaowu' fileaaaabbbbxiaowuxiaowuccccdddd如果要在第二行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”[root@xiaowu shell]# sed -i '/b/i\xiaowu' fileaaaaxiaowubbbbccccd.

2021-02-19 15:37:52 68

转载 linux shell中$0,$?,$!等的特殊用法

一、Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义说明(1)$$Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)(2)$!Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)(3)$?最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)(4)$-显示shell使用的当前选项,与set命令功能相同(5)$*所有参数列表。...

2021-02-08 15:27:17 746

空空如也

空空如也

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

TA关注的人

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