自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VSCode远程调试linux环境的C/C++(三)

前面试着远程调试了个简单的C++程序,但实际项目模块很多,还用了很多第三方库,本来说是学习下CMAKE的,后来想着tasks.json中既然可以定义先cmake再make,那我本来已经make过的项目可以只选择make就可以了,再配置个launch.json是不是也可以加断点调试了,试了下果然可以,这比linux下调试方便多了。先打开整个项目的文件夹,按F5,选择添加launch.json,把以前的sh启动脚本放到launch.json里。再跟前一篇一样F9加断点,F5开始跑就可以单步调试了。

2024-02-29 15:58:09 447

原创 CMake应用

记录下方便学习。

2024-02-28 15:36:52 379

原创 VSCode远程调试linux环境的C/C++(二)

点击最左边的Run and Debug或者按F5即开始执行,可按F9加断点,左边可以看到停在断点时的堆栈,其它跟VS一样,可以按F10单步调试了。vscode里框架如下,刚开始没有lauch.json,点击最左侧的Run按钮可自动生成个,我自己添加了tasks.json。tasks.json代码如下,给出了linux下执行步骤,先cmake,再make,再build。launch.json代码如下,根据路径修改了 "program"安装成功后开始写代码测试,先写个最简单的,文件结构如下。

2024-02-28 14:24:12 490

原创 VSCode远程调试linux环境的C/C++(一)

第一次搭建该环境,记录一下。

2024-02-23 17:37:10 513

原创 vmware上安装了ubuntu20的后续处理

命令行执行 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf ,增加如下配置。命令行执行 sudo gedit /etc/pam.d/gdm-autologin,注释下图框出的行。命令行执行 sudo gedit /etc/pam.d/gdm-password,注释下图框出的行。命令行执行 sudo gedit /etc/gdm3/custom.conf,修改下面几行。修改/etc/gdm3/custom.conf。

2024-02-23 16:31:31 895

原创 内存泄露排查

查看生成的mem.txt,没看出什么问题。C++的工程,发现有内存泄露。还有泄露,晕,再找吧。

2023-12-22 10:30:46 388

原创 取文件夹大小

实际使用时发现文件夹已经2G了,取出来只有1400M的样子,一查发现。命令返回的是文件的字节数,而不是实际在磁盘上占用的大小。

2023-12-07 14:58:44 404

原创 tinyxml循环读取xml文件

读一个如下格式的xml文件。

2023-11-29 14:42:30 457

原创 生成随机车牌

【代码】生成随机车牌。

2023-11-29 14:33:13 720

原创 websocketpp获取nginx反代后的客户端真实ip

nginx.conf中添加配置。

2023-11-28 17:48:44 442

原创 跨平台获取当前线程ID

【代码】跨平台获取当前线程ID。

2023-11-28 17:42:23 451

转载 C++11并发编程-条件变量(condition_variable)详解

是条件变量,更多有关条件变量的定义参考维基百科。Linux下使用Pthread库中的函数提供了与条件变量相关的功能,Windows则参考MSDN。当对象的某个wait函数被调用的时候,它使用(通过std::mutex) 来锁住当前线程。当前线程会一直被阻塞,直到另外一个线程在相同的对象上调用了函数来唤醒当前线程。对象通常使用来等待,如果需要使用另外的lockable类型,可以使用类,本文后面会讲到的用法。// 全局互斥锁.// 全局条件变量.// 全局标志位.while (!

2023-08-17 14:47:16 133

转载 C++多线程启动、暂停、继续与停止

C++11标准以后,加入了线程相关的接口,在应用中经常需要使线程暂停,在windows API中可以使用suspend 使线程挂起,但容易产生一些意想不到的问题,官方并不推荐使用。在自动化设备中,设备在运转过程中,为了防止设备伤人,通常会在设备门入口安装光幕,当光幕被遮挡时,设备必须暂停,确保安全的情况下,按下继续按钮,设备继续运转。对于多工位的设备,每个工位可能交由一个线程处理,因此暂停时,需要令这些线程暂时挂起。运行程序,单击开始后,编辑框中正常计数,但在线程退出时,阻塞在 join() 函数。

2023-08-17 10:39:20 923

转载 Linux编程之epoll

现在有这么一个场景:我是一个很忙的大老板,我有100个手机,手机来信息了,我的秘书就会告诉我“老板,你的手机来信息了。”我很生气,我的秘书就是这样子,每次手机来信息就只告诉我来信息了,老板赶紧去看。但是她从来不把话说清楚:到底是哪个手机来信息啊!我可有100个手机啊!于是,我只能一个一个手机去查看,来确定到底是哪几个手机来信息了。这就是IO复用中select模型的缺点!老板心想,要是秘书能把来信息的手机直接拿到我桌子上就好了,那么我的效率肯定大增(这就是epoll模型)。

2023-07-10 10:39:43 87

转载 Linux编程之select

参数说明:maxfdp:被监听的文件描述符的总数,它比所有文件描述符集合中的文件描述符的最大值大1,因为文件描述符是从0开始计数的;readfds、writefds、exceptset:分别指向可读、可写和异常等事件对应的描述符集合。timeout:用于设置select函数的超时时间,即告诉内核select等待多长时间之后就放弃等待。timeout == NULL 表示等待无限长的时间/*秒 *//*微秒 */返回值:超时返回0;失败返回-1;成功返回大于0的整数,这个整数表示就绪描述符的数目。

2023-07-07 16:37:32 695

原创 Linux串口获取完整的数据包

或者获取到指定的标志位之类。但是我这因为设备上协议已经固定,没有特别的标志位,数据还是变长的,并不主动上报消息,只有在下发指令后要及时获取回应的消息,所以这些方法都不太适用。只好给了个合适的时间段,获取该时间段内收到的数据。收消息的时候标志位读数组中相应串口的标志位,为true就开始计时并循环收消息,直到规定的时间为止,因为我收到的数据都不长,所以给了50ms的时间,此处可根据收到数据量的多少调整时间长度。发消息的时候设置标志位通知开始收,因为我这有多个串口,所以用map记录了标志位。

2023-07-07 10:40:58 245

原创 C++获取当前线程ID

在需要获取ID的线程中调用gettid()即可。

2023-07-05 16:15:24 239

原创 微信小程序scroll-view的bindscrolltolower事件不生效

最近学习微信小程序,用到了scroll-view控件,发现bindscrolltolower事件总是不能触发,修改后可正常触发了,注意下面几点。

2023-06-26 10:40:38 1390

转载 十个接私活赚外快的网站,你有技术就有钱

随着互联网的发展,程序员兼职越来越普遍。但在找兼职之前,我希望大家先了解一些做兼职可能踩的坑,免得瞎子上山,一脚深一脚浅。下面就有这么三接四不接,希望你能看看,如果对你有那么一点点的帮助,也算对得起我这么多年的血和泪和着我掉过的头发:·三接有信得过的同事、朋友或者亲戚参与在内的项目,可以接。自己身边的人总归靠谱些、也让人放心些。已经开发的七七八八,只需调试、增减功能或者迭代的,可以接。这样的项目,虽然熟悉别人的代码可能需要点时间,但是谈需求谈价格的时候真的很轻松。

2023-06-25 13:16:25 1350

原创 微信小程序 HBuilderX

如果报错:[微信小程序开发者工具] [error] 工具的服务端口已关闭。要使用命令行调用工具,请在下方输入 y 以确认开启,或手动打开工具 -> 设置 -> 安全设置,将服务端口开启。写下微信小程序试试,使用工具HBuilderX。可在微信开发者工具中执行下图操作。试用下是不是这么厉害。新建项目,选了默认模板。

2023-06-21 16:21:11 149

原创 微信小程序变脸

有问题多指教是一个基于百度AI变脸的小程序,基本功能如下图。

2023-06-21 11:13:08 302

原创 微信小程序判断对象是否存在或为空

测试发现通过typeof判断节点是否存在时要一层层判断,如果result.data.result已经不存在,直接判断result.data.result.image会出错。要取节点result.data.result.image的值,正常情况下有该节点如下图所示。所以添加节点是否存在和是否为空的判断,存在且不为空时才显示。但出错的情况下该节点不存在,直接取会出错。

2023-06-21 10:23:28 1488

原创 微信小程序之radio-group

imgType也默认设置成第一个的值。初始化的时候默认勾选第一个。

2023-06-20 17:31:14 1704

原创 微信小程序中图片等比例显示

设计时如果需要图片显示的height是固定的,width根据图片自身比例自适应,则image需要加上mode="heightFix",该image的class只设置width,不设置height。设计时如果需要图片显示的width是固定的,height根据图片自身比例自适应,则image需要加上mode="widthFix",该image的class只设置height,不设置width。当图片的长宽比例和显示的位置的长宽比例不一致时,图片显示会失真。

2023-06-20 16:46:47 616

原创 微信小程序宽高百分比问题

这两天学习了一下微信小程序开发,碰到不少坑,其中宽高百分比设置有的成功,有的不成功,后来发现要先在wxss中设置page的宽高百分比,其它容器都是page的子容器。

2023-06-20 16:30:10 271

转载 wireshark抓包新手使用教程

说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏View --> Coloring Rules。如下所示WireShark 主要分为这几个界面1. Display Filter(显示过滤器), 用于设置过滤条件进行数据包列表过滤。菜单路径:Analyze --> Display Filters。2. Packet List Pane(数据包列表), 显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。

2023-06-16 15:37:21 280

转载 深入浅出Git教程(转载)

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量并行开发、提高开发效率跟踪记录整个软件的开发过程减轻开发人员的负担,节省时间,同时降低人为错误简单说就是用于管理多人协同开发项目的技术。

2023-06-16 14:06:25 637

转载 C++ 单例模式的各种坑及最佳实践

1.C++ 单例模式的各种坑及最佳实践06-11收起单例模式是设计模式中最简单、常见的一种。其主要目的是确保整个进程中,只有一个类的实例,并且提供一个统一的访问接口。常用于 Logger 类、通信接口类等。

2023-06-16 10:01:59 78

转载 linux useradd 命令基本用法

在 Linux 中 useradd 是个很基本的命令,但是使用起来却很不直观。以至于在 Ubuntu 中居然添加了一个 adduser 命令来简化添加用户的操作。本文主要描述笔者在学习使用 useradd 命令时的一些测试结果。说明:本文中的所有试验都是在 Ubuntu14.04 上完成。

2023-06-16 09:27:08 800

转载 linux sed 命令

基本命令格式sed [常用选项] 命令文本 输入常用选项-n (--quiet, --silent):安静模式。在 sed 的基本用法中,所有来自标准输出的信息都会被列出到终端上。加上 -n 参数后,则只有被sed 处理的那些行才会被输出。-e:指定在指令列模式上执行的命令文本。默认不需要指定,只有同时要执行多个命令文本时才需要显式的指定 -e 选项。-f:同时要执行多个命令文本时,可以将这些命令文本写到一个文件中,然后通过 -f filename 的方式使用。

2023-06-16 09:15:57 1523

转载 linux ls 命令

除了本文介绍的基本用法和常用的选项,ls 命令还有很多的选项可以提供更多的功能。比如 i 选项可以显示文件的 inode 信息等等。所以 ls 是一个看似简单实则功能强大的命令。sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-16 09:15:30 835

转载 linux kill 命令

使用信号 15 是安全的,而信号 9 则是处理异常进程的最后手段,请勿滥用。sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-16 09:14:27 699

转载 linux sudo 命令

简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。

2023-06-16 09:13:01 98

转载 Ubuntu 中登录相关的日志

本文整理了 Ubuntu 系统中常见的一些与登录相关的文件和命令。通过它们可以快速的查看当前用户的登录情况和所有用户登录登出的历史记录,并且可以查询到用户使用 root 权限执行的操作。这对我们维护系统的安全和用户的管理都非常有帮助。sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-15 15:38:27 2120

转载 linux dig 命令

dig 是一个很给力 DNS 查询工具,本文仅介绍了其常见用法,更多的命令选项及使用方法请查看 man page。sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-15 15:36:31 412

转载 linux free 命令

下面先解释一下输出的内容:Mem行(第二行)是内存的使用情况。Swap行(第三行)是交换空间的使用情况。total列显示系统总的可用物理内存和交换空间大小。used列显示已经被使用的物理内存和交换空间。free列显示还有多少物理内存和交换空间可用使用。shared列显示被共享使用的物理内存大小。buff/cache列显示被 buffer 和 cache 使用的物理内存大小。available列显示还可以被应用程序使用的物理内存大小。

2023-06-15 15:26:06 102

转载 Linux 创建子进程执行任务

fork/vfork 函数和 exec 族函数都是 Linux 系统中非常重要的概念。本文试图通过简单的 demo 来演示这些函数的基本用法,为理解 Linux 系统中父进程与子进程的概念提供一些直观的感受。Linux C 编程一站式学习《Linux 环境下 C 编程指南》《深入理解 Linux 内核》sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-15 14:37:39 523

转载 Linux 僵尸进程

Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态。例如,进程可以创建一个子进程来执行特定的任务,然后调用诸如 wait() 这样的一些库函数检查子进程是否终止。如果子进程已经终止,那么,它的终止代号将告诉父进程这个任务是否已成功地完成。为了遵循这些设计原则,不允许 Linux 内核在进程一终止后就丢弃包含在进程描述符字段中的数据。只有父进程发出了与被终止的进程相关的 wait() 类系统调用之后,才允许这样做。

2023-06-15 14:29:37 100

转载 Linux Socket 编程简介

本文通过一个简单的建基于 TCP 协议的网络程序介绍了 linux socket 编程中的基本概念。通过它我们可以了解到 socket 程序工作的基本原理,以及一些解决性能问题的思路。基于TCP协议的网络程序sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-15 14:27:09 54

转载 linux ss 命令

由于性能出色且功能丰富,ss 命令可以用来替代 netsate 命令成为我们日常查看 socket 相关信息的利器。其实抛弃 netstate 命令已经是大势所趋,有的 Linux 版本默认已经不再内置 netstate 而是内置了 ss 命令。sparkdevsparkdev - 博客园本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

2023-06-15 14:17:58 480

msvcp140 msvcp120 msvcr120 msvcm90 msvcr90 msvcp90

msvcp140d.dll msvcp140.dll msvcp120d.dll msvcp120.dll msvcr120.d msvcr120d.dll msvcr90d.dll msvcp90d.dll msvcm90d.dll msvcr90.dll msvcp90.dll msvcm90.dll 32位64位都有

2023-05-25

空空如也

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

TA关注的人

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