自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 python表格处理prettytable vs pandas

介绍prettytable和pandas在处理数据上的差异以及各自的优缺点和使用场景。

2024-10-24 22:46:26 305

原创 浅谈C++函数中的局部变量导致的指针失效问题

介绍误用局部变量对指针赋值的影响以及解决方法。

2024-09-14 23:30:32 408

原创 自定义Linux终端命令行提示符的外观和行为之PS1环境变量介绍

介绍如何自定义Linux终端命令行提示符的外观和内容

2024-09-09 23:49:24 459

原创 windows右键菜单添加Open Folder as IntelliJ xxx Project

介绍windows下如何通过注册表添加右键菜单打开项目。

2024-09-07 12:25:12 848 2

原创 Linux下删除某个文件之外的其他所有文件

介绍如何快速在Linux下删除某个文件以外的其他所有文件。

2024-09-06 23:16:03 796

原创 Linux下快速判断当前终端使用的是bash or csh

介绍如何快速判断当前终端使用的shell类型以及bash和csh的差异。

2024-09-01 18:15:44 1142

原创 优雅回收多个成员变量内存——使用函数模板实现内存安全释放

使用函数模板解决析构函数中重复执行的代码。

2024-08-27 21:34:19 339

原创 Shell脚本之Shell基础

介绍Linux下Shell脚本的一些基础,初步了解shell。

2024-08-25 20:23:20 310

原创 Java JNA调用C函数常见问题及解决方法

以下是博主自己使用JNA过程中遇到的一些问题汇总,分享给大家,少踩坑。

2024-08-24 17:40:52 1509 4

原创 JNA实践之Java模拟C结构体、结构体指针、结构体数组

第一次写JNA相关的文章是在21年了,中间由于一些事情把后续搁置了,现在补上Java模拟结构体、结构体指针以及结构体中嵌套结构体数组。如果对JNA还不了解,可以先阅读一文。

2024-08-24 16:57:19 2007

原创 python实现自定义日志,支持同时输出到屏幕和文件

如下是一个用python实现的日志类Logger.py# 设置日志输出格式# 写入日志文件# 输出到屏幕# 设置日志输出格式# 写入日志文件# 输出到屏幕。

2024-08-21 21:56:13 623 1

原创 浅谈shell中的while true

在shell中实现死循环,一般都会用while true,那你知道执行while true时,进程都在做些什么吗?

2024-08-20 23:16:23 729

原创 Python统计单词列表

给定一组字符串words和每行能显示的最大字符数max_length,计算需要多少行才能完整显示所有的单词。思路很简单,从给定的字符串中按空格分割单词列表,计算一行能显示的单词数,将其添加到list中。

2024-08-07 21:57:27 313

原创 Linux下自动监控进程运行状态

Linux下使用crontab+脚本实现进程运行状态定时监控。

2024-08-07 21:52:22 1535

原创 Linux定时任务之crontab

Linux 中的 crontab(cron table 的缩写)是一个用来设置可以被周期性执行的任务的工具。crontab 允许用户设置定时任务,这些任务可以是系统命令、用户自定义的脚本等。每个用户都可以拥有自己的 crontab 文件,存放在目录下,文件名以用户名命名。这条命令会在每天的 12:00 查找并删除所有的 core 文件。

2024-08-05 23:56:05 121105 1

原创 Linux下使用宏定义判断系统架构和系统类型

在linux下使用如下命令通常,在构建时使用 #ifdef xxx最为方便:对于 32 位 ARM平台,使用arm对于 64 位 ARM平台,使用aarch64对于 32 位 x86平台,使用i386对于 64 位 x86平台,使用x86_64请注意:32 位 X86 称为 __i386__,而不是__x86__# if(defined __arm__) ||(defined __aarch64__) // arm平台 cout

2023-11-21 21:24:47 2342

原创 Qt xml解析之QXmlStreamReader

自QT4.3版本开始,QT提供了两个新类来读写XML:QXmlStreamReader 和 QXmlStreamWriter。顾名思义,QXmlStreamReader用于读取XML,QXmlStreamWriter用于写入XML。这两个类都使用流的方式操作xml,比起使用DOM和SAX解析xml,这是最快最方便的操作xml的方法。

2023-08-28 22:26:48 3179

原创 浅谈正则表达式——C++正则替换引起的性能下降

不用不知道,正则虽然处理文本很强,但用错了地方,可能带来负面效果,coding就是从这个坑出来,掉进另一个坑里,这其中的乐趣,大概就是爬上坑的过程吧哈哈。

2022-12-01 23:13:21 1891

原创 剖析STL map运算符重载[]——已经删除的元素是从哪里多出来的?

C++的STL很强大,需要注意的细节也有很多,就像这次不了解map的[]运算符会重新生成一个元素,导致走了很多冤枉路。特别在此记录,分享给更多的人,少踩坑!

2022-09-17 12:22:50 617

原创 解决error: invalid operands of types ‘const char [6]‘ and ‘const char [6]‘ to binary ‘operator+‘

在使用C++中的字符串时,习惯性的把两个使用""括起来的字符串使用+连接,结果报错意思是对两个const char*类型的操作数进行+运算是非法的,本来想着两个字符串能够像c++中的string一样进行连接,结果与自己想的大相径庭。

2022-09-10 01:20:30 20675

原创 shell脚本快速统计项目代码行数

最近突然想看看正在开发的项目一共有多少行代码,但是项目又比较大,手动去计算太麻烦了。就想到了shell脚本,只用给它一个路径,等待脚本统计结果即可。

2022-07-03 11:42:50 800

原创 快速在Linux上安装windows consola字体

俗话说,工欲善其事,必先利其器,以前在Linux下使用Qt creator写C++代码时,IDE自带的字体感觉都不好看,我自己写代码觉得字体最适合,就想着把windows下的字体用到linux上,几经折腾,终于在linux上用上了。...

2022-06-18 22:22:37 964

原创 sstream redeclared with public access compiler error

文章目录场景剖析解决方法场景在gtest测试中,由于要测试非public成员,于是重新定义了“private”关键字,如下#define private public结果编译时遇到下面的问题:剖析这种宏定义的方式,改变了private的作用范围,会导致其他头文件中的private被重定义。具体可参考stackoverflow上的解释(sstream-redeclared-with-public-access-compiler-error)解决方法1.使用#undef在包含系统头文件之前的

2022-05-22 17:18:13 386

原创 玩转C++单元测试之快速上手gtest

文章目录1.gtest简介2.gtest原理3.gtest安装3.1使用dnf进行安装3.2编译gtest项目源码4.gtest内置测试相关的宏5.gtest断言6.自定义测试失败信息输出7.gtest demo7.1简单用法7.2作为测试类使用7.2.1定义一个要被测试的类7.2.2定义测试类7.3执行所有测试用例8.gtest测试类的私有成员8.1加宏编译8.2 FRIEND_TEST8.3使用pimpl重构被测代码9.gtest-demo git链接1.gtest简介gtest是一个跨平台的(Li

2022-04-23 18:29:14 8379 2

原创 最详细的Centos7 gcc4.9升级gcc10

文章目录1.准备源码包2.安装GMP3.安装MPFR4.安装MPC5.安装GCC106.GCC版本更新6.1备份旧版本gcc6.2为gcc10创建软链接6.3替换libstdc++.so.6附录最近编译gtest源码时,由于gcc版本太低,编译报错。看到gtest里面写的要求gcc5.0以上版本,于是我直接升级到了gcc10,可以使用更多新特性。1.准备源码包安装gcc10,下面的几个源码包必不可少gcc10下载地址:https://mirrors.aliyun.com/gnu/gcc/gcc-

2022-04-23 11:07:40 4740 4

原创 C/C++时间字符串和时间戳的相互转化

用到的函数主要有strftime、strptime 、localtime 、mktime。名词解释:时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。时间字符串:形如2021-12-01 12:00:00size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr)作用:strftime将一个tm结构格式化为一个字符串参数

2021-12-29 21:23:46 22392 6

原创 C语言printf格式化输出汇总

之前用格式化输出时,只记住了常用的几个。其实printf的格式化输出有很多,这里分享给大家:printf函数头文件#include <stdio.h>函数原型int printf( const char *format, ... );你可能只用过%d,%f,不同的"%-codes"表示不同的变量类型, 也可以限制变量的长度.常用%格式short %hd:输出短整数 (h表示短整数)unsigned short %hulong %ldunsigned

2021-12-25 17:14:16 2268

原创 shell脚本之awk命令——按列求平均值、最大值、最小值

文章目录写在前面awk求平均值awk求最大值awk求最小值awk求极值、均值的实际应用写在前面awk命令求极值和均值需要熟悉该命令的基本用法,如果你不熟悉该命令,请先阅读shell脚本之awk命令——分隔符介绍一文。本篇博文带你熟悉求平均值、最大值、最小值的方法,并以实际的应用带你进一步掌握awk的高级用法。以下为求平均值、最大值、最小值用到的文件data,使用cat data查看内容为1.02.03.04.05.06.07.08.09.010.0awk求平均值awk '{su

2021-09-06 21:07:35 20603

原创 shell脚本之awk命令——分隔符介绍

文章目录awk入门awk -Fawk命令之,分割符awk命令之;分割符awk入门关于awk命令的基础用法,请参考Linux awk命令。awk -Fawk -F #-F相当于内置变量FS, 指定分割字符,fs是一个字符串或者是一个正则表达式,如-F:。awk命令之,分割符awk命令之;分割符...

2021-08-28 23:53:36 4415

原创 C&C++字符串比较避坑之Comparison with string literal results in unspecified behaviour

例子在比较两个字符串的时候,很多情况下你可能首先就想到了==运算符,看下面一个例子:if ("connection" == nextElement->Name()){ //比较节点名是否等于"connection",此处"connection"被当做char*处理,而Name()返回的是const char*....}使用GCC编译代码时遇到以下警告:warning: comparison with string literal results in unspecified behavi

2021-07-14 21:58:41 14311

原创 批量文本文件内容替换之Linux sed命令

文章目录sed命令简介需求sed实现批量替换sed命令简介Linux sed命令可以使用shell脚本进行文件的批量处理,如批量替换、修改等等,尤其是在需要对大量文本文件进行批量操作时,使用sed命令会起到事半功倍的效果。关于详细语法介绍,请参考菜鸟教程Linux sed命令。需求现在需要对特定目录下的某个xml文件进行指定内容替换操作,目录下的内容如下:每个DAFront_目录下都有一个cfg/.xml文件,文件内容如下:<?xml version="1.0" encoding="UT

2021-05-23 11:04:35 937 6

原创 JNA基础之Java映射char*、int*、float*、double*

而使用ByReference对象获取的值则是0(Java中int的默认值),除非你明确知道C函数不管返回何值都对指针的值做了处理,可以使用Pointer,否则请使用ByReference引用对象,避免获取到垃圾值。建议使用对应的ByReference对象替代Pointer,使用Pointer有时可能会得到一个垃圾值(正常情况下两种方式结果一样),如果C中函数执行失败时没有对指针的值进行处理,使用Pointer就会得到一个垃圾值。这里主要分享一些比较复杂的类型之间的映射关系。官方给出的映射关系如下。...

2021-01-17 21:21:06 7193 10

原创 使用结构体tm计算两个日期的时间差

目录写在前面应用演示源码写在前面 前段时间用到了C++中的时间和日期,当时就想着,学以致用,写个计算时间差的功能。时间仓促,可能代码中还有一些不足的地方,欢迎大家批评指正~应用sscanftmmktime演示源码TimeDiff.cpp#include <iostream>#include <time.h>#include <string.h>#include <stdio.h>#include <iostream&g

2020-05-24 15:20:02 2865

原创 Linux下编译thread通过,运行时报错‘std::system_error‘ std::thread: Operation not permitted原因及解决办法

介绍Linux下编译thread通过,运行时报错'std::system_error' std::thread: Operation not permitted的原因及解决办法。

2020-01-03 19:30:51 6956 10

原创 C++类型转换之char转string

目录1.遇到的问题2.意外的惊喜3.结语1.遇到的问题最近项目在做去Qt化,没办法,Qt确实好用,但是要安装qt库,为了和各个现场的环境一致,只能用原汁原味的C了。QT拼接字符串:QString qstrDevPoint = QString("{TYPE:%1CONTENT:%2,COMPRESS,").arg(COM_FUNC_MSG_8).arg(g_pFeAcess->m_fa...

2019-12-22 15:56:10 803

原创 教你一招,轻松应对Eclipse中英文切换

1.修改配置文件在Eclipse安装目录下找到它的配置文件“eclipse.ini”,使用Notepad++或记事本编辑该配置文件,截图显示如下:在最后一行之后添加如下相应命令:界面显示中文:-Duser.language=zh界面显示英文:-Duser.language=en添加之后保存修改,然后重新打开Eclipse,界面就会显示对应的语言。2.修改快捷方式的属性在Ecl...

2019-12-15 14:57:18 440

原创 C++容器之vector&map应用——解析配置文件(二)

前言这篇博文给大家分享如何使用map存储key-value形式的文件内容。需求引入项目中经常用到key-value形式的配置文件,以前用java直接使用properties文件很方便,但在C/C++中,还是需要读取文件获取内容,就去尝试了一下具体如何实现。这里的配置文件内容如下:#comment row key1=name #注释password= 12345 key2 ...

2019-11-30 16:06:22 677

原创 linux下TCP socket编程入门案例(二)——非阻塞的TCP server&client

在[上一篇【阻塞的TCP server&client】](https://blog.youkuaiyun.com/xb_2015/article/details/102993083)中,介绍了如何使用socket函数编写第一个socket通信小程序。这篇文章在第一个demo的基础上,将使用select函数实现非阻塞的TCP server&client。

2019-11-23 12:36:02 5818 4

原创 C++容器之vector&map应用——解析配置文件(一)

本篇主要介绍如何使用map和vector解析以逗号分隔的配置文件,属于map和vector的初级应用。

2019-11-22 23:53:19 919

原创 windows下mysql安装教程(非常详细,附下载资源)

最近换了硬盘,重新装了系统,MySQL也重新装了一遍,写给需要的朋友。本文以mysql-5.5.60为例,windows下其他版本也可以参照本教程。文章目录安装mysql1.双击运行mysql安装程序2.点击下一步3.点击接受,下一步4.选择custom(自定义)5.选择安装路径6.完成mysql安装配置mysql1.安装完之后,弹出如下(1)界面2.按图示点击下一步3.选择配置方式4.选择服务...

2019-11-18 22:35:46 352

计算机基础之常见进制转换(二、八、十、十六进制互相转换)

内容概要:详细介绍常用进制间互相转换的规则,对于深入了解计算机底层是如何工作的很有帮助。 适合人群:了解计算机基本概念,具有一定编程基础的开发人员。 能学到什么:了解常用进制,各种进制间相互转换的方法。

2022-09-19

Java JNA使用参考手册.pdf

Java JNA使用参考手册.pdf

2021-01-19

空空如也

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

TA关注的人

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