自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux无线网络配置工具:iwconfig vs iw

iwconfig是 Linux 系统中一个传统的无线网络配置工具,属于包。它主要用于配置无线网络接口的参数。iw是一个较新的命令行工具,用于配置和查询无线网络接口。它逐渐取代了iwconfig成为配置无线网络的首选工具。iwconfig和iw都是Linux系统中用于无线网络配置的重要工具。iwconfig适用于较老的无线设备和简单的配置任务,而iw更适合现代无线设备的高级功能和配置。在可能的情况下,推荐使用iw,因为它提供了更全面的功能和更好的兼容性。

2024-12-04 20:09:29 123

原创 FreeCAD:开源3D建模软件的利器,提升你的建模效率

FreeCAD广泛应用于工程、建筑、科学研究和教育等领域,是一款功能强大的3D建模工具。FreeCAD作为一款开源、免费的3D建模软件,具有强大的功能和广阔的应用前景。在当今的工业设计、建筑设计、机械制造等领域,3D建模软件已成为不可或缺的工具。本文将为您推荐一款开源、免费的3D建模软件——FreeCAD,让您轻松实现3D建模梦想。摘要:本文将深入介绍FreeCAD这款开源3D建模软件,分析其特点、优势、应用场景以及使用技巧,帮助读者全面掌握这款实用工具,提高3D建模效率。

2024-12-02 11:07:05 560

原创 Linux 中Shell快捷键

Ctrl+W:删除光标前面的单词(以空格分隔)。Ctrl+U:删除光标前面的所有字符,直到行的开始。Ctrl+K:删除光标后面的所有字符,直到行的结束。Ctrl+Y:粘贴由 Ctrl+U 或 Ctrl+K 删除的文本。

2024-12-02 10:46:01 366

原创 Git Rebase vs Merge:操作实例详解

git merge保留了分支合并的历史,适合多人协作的项目。git rebase创建了一个更线性的历史,适合个人开发分支的更新。在使用rebase时,应该只在私有分支上操作,以避免对项目历史造成混乱。

2024-11-29 09:17:52 346

原创 C语言高效日志记录:减少磁盘I/O的方法

在软件开发过程中,日志记录是一项非常重要的功能。它可以帮助我们追踪程序的运行状态、调试错误以及分析性能问题。然而,频繁的日志写入操作可能会对磁盘I/O造成较大压力,影响程序的整体性能。本文将探讨如何在C语言中实现高效日志记录,并重点介绍减少磁盘I/O的方法。

2024-11-28 19:11:44 483

原创 SSH远程命令实践:如何打包、压缩并传输服务器文件

大家好,今天我要分享的是如何使用SSH命令来远程打包、压缩服务器上的文件,并将其传输到本地或其他服务器。这对于需要在远程服务器上进行文件备份或迁移的场景非常有用。压缩后的文件已经通过SSH连接直接传输到了本地机器。通过本文,我们学习了如何使用SSH命令远程打包、压缩并传输服务器文件。

2024-11-28 17:34:08 456

原创 解决Ubuntu 22.04系统中网络Ping问题的方法

在Ubuntu 22.04系统中,网络问题时有发生,尤其是当涉及到静态IP地址配置和网线直连的两台机器时。本文将探讨一种常见问题——断开并重新连接网线后,尽管网卡显示为UP状态,但无法立即ping通对方机器,以及如何解决这一问题。

2024-11-26 15:26:22 718

原创 CMake教程:如何轻松包含子目录中的.h文件

首先,确定我们要搜索的起始目录。

2024-11-25 14:40:13 384

原创 挑选不锈钢厨具的简单识别方法

厨房里的锅碗瓢盆,不锈钢材质的特别受欢迎。然而,不锈钢也有好坏之分,尤其是直接接触食物的厨具,选错了可不行。这些元素的比例不同,决定了不锈钢的性能和用途。食品级不锈钢通常含有较高比例的铬和镍,以及其他元素如钼、钛、氮等,这些成分赋予其优异的耐腐蚀性和机械性能。常见的标准有美国的FDA标准、欧洲的EN标准等。挑选不锈钢厨具,记得要选食品级的,这样不仅用起来安全卫生,而且使用寿命更长。食品级不锈钢,听名字就知道,它是专门为制作厨具准备的。知道牌号:食品级不锈钢常见的牌号有304和316,认准这些牌号买没错。

2024-11-25 14:23:10 160

原创 C++中的原子操作:原子性、内存顺序、性能优化与原子变量赋值

的类,用于表示原子变量,它可以确保在多线程环境中变量的读取和写入操作是原子的,从而避免数据竞争和竞态条件。原子变量是指在多线程环境中,其读取和写入操作都是原子的,这意味着这些操作不会被其他线程中断。在多线程编程中,正确地处理共享资源是至关重要的。该类提供了多种操作原子变量的方法,包括赋值、读取、比较并交换等。这些操作符可以用于原子地执行加、减、乘等操作。类中的原子操作、内存顺序选择以及如何优化性能。这些方法都可以用于设置原子变量的值。类提供了直接赋值的方法,如。二、原子变量的赋值操作。

2024-11-22 19:30:20 840

原创 Scons:自动化构建工具的Python力量

在软件开发过程中,构建和部署是不可或缺的环节。Scons是一个基于Python的自动化构建工具,它为开发者提供了一种强大而灵活的方式来管理复杂的构建过程。本文将介绍Scons的基本概念、特点和如何使用Scons来自动化构建过程。一、Scons简介Scons是一个自动化构建工具,用于自动化软件构建过程,如编译、链接和部署。它是一个替代Make工具的自动化构建系统,由Python编写,并利用Python的特性来提高构建脚本的易读性和可维护性。二、Scons的特点。

2024-11-21 10:51:55 274

原创 gflags 的简单使用

在 C++ 代码中,你可以使用 gflags 提供的宏来定义命令行参数。这里的和是 gflags 提供的宏,分别用于定义字符串和整数类型的命令行参数。

2024-11-19 11:34:25 467

原创 vlc 批量转化格式

VLC 将处理选定的文件,并将它们转换为指定的格式,并保存在指定的目录中。VLC 播放器是一个功能强大的工具,它不仅能够播放各种媒体文件,还能够转换视频格式,非常适合需要批量转换视频文件的用户。: 在转换器界面的“格式”部分,选择你想要转换到的格式。: 在转换器界面中,点击“添加文件”(Add)按钮,然后选择你要转换的文件。: 在“输出目录”部分,选择或输入一个文件夹,作为转换后的文件保存的位置。: 转换过程中,你可以看到进度条,以及转换的文件列表和当前处理的文件。: 双击 VLC 图标,打开播放器。

2024-11-19 11:16:51 439

原创 C++14的新特性

C++14作为C++标准的重要补充,其在性能和便捷性方面的改进,为开发者带来了极大的便利。随着编译器对C++14特性的不断完善和优化,我们可以期待C++在未来的应用中将发挥更大的作用。C++14作为C++11的后续版本,继续延续了这一趋势,为开发者带来了更多便捷的特性,同时在性能方面做出了重要改进。:C++14对lambda闭包进行了优化,允许捕获this指针的副本,提高了lambda在异步操作中的性能。:变量模板的引入,使得模板化变量成为可能,进一步丰富了模板元编程的能力。

2024-11-18 14:52:42 307

原创 利用MQTT和SSL/TLS实现数据加密

通过以上步骤,我们成功地为物联网设备搭建了一个基于MQTT协议和SSL/TLS加密的安全通信环境。这有助于保护数据在传输过程中的安全性,确保物联网系统的稳定运行。随着物联网(IoT)技术的飞速发展,越来越多的设备接入网络,进行数据交换和处理。(1)将证书文件(server.crt)、私钥文件(server.key)和CA证书(ca.crt)放置在Mosquitto的配置目录下。SSL/TLS(安全套接字层/传输层安全)是一种广泛应用于网络通信的加密技术,可以有效保障数据在传输过程中的安全性。

2024-11-18 14:26:13 718

原创 GIMP 介绍及安装

GIMP(GNU Image Manipulation Program)是一个开源的图像编辑软件,广泛用于图像修饰、图像合成、图像绘制等多种场合。它是自由软件基金会支持的项目之一,可以在多种操作系统上运行,包括 Linux、Windows 和 macOS。:GIMP可以在不同的操作系统上运行,为用户提供了极大的便利。:GIMP提供了丰富的工具,包括选区工具、画笔、克隆工具、模糊工具等,适用于不同的图像编辑需求。:GIMP支持图层,用户可以独立编辑每一个图层,然后合并成最终的图像。

2024-11-18 14:18:19 683

原创 Linux 中查看 CPU 信息

在 Linux 中查看 CPU 信息有多种方法。以下是一些常见 Linux 发行版安装。安装完成后,你可以在终端中直接输入。

2024-11-14 17:50:58 483

原创 ssh登陆服务器后支持Tab键命令补全

改为 levin:x:1006:1006:,,,:/home/levin:/bin/bash。在服务器上新建了用户后,通过ssh登录到服务器后发现不能使用Tab键来进行命令补全。如: levin:x:1006:1006::/home/levin:/bin/sh。如果需要ssh登录的shell为bash , 只要修改。但是关闭连接后重新ssh登录,又需要输入。以为没有配置.bashrc 此时输入。这样就可以使用Tab键来进行命令补全。找到 ssh登录的用户所在行将。

2024-11-14 14:03:19 758

原创 C++ 标准库 std::vector 的介绍

是 C++ 标准库中的一个动态数组容器,它提供了多种成员函数来管理其内部存储的元素。以下是一些常用的。

2024-11-13 10:00:35 487

原创 Git 中的 patch 功能

Git 中的patch功能允许你创建、应用和查看更改的集合,这些更改可以是从一个分支到另一个分支、从一个提交到另一个提交,或者是从本地仓库到远程仓库。

2024-11-12 18:22:57 649

原创 删除 git config 保存的密码

要从 Git 中删除保存的密码,你可以根据你之前使用的保存方法来操作。

2024-11-12 18:16:39 529

原创 git config 保存密码

在 Git 中保存密码可以通过几种不同的方式来实现,这样可以避免每次与远程仓库交互时都需要输入用户名和密码。

2024-11-12 18:13:54 675

原创 Linux下useradd 和 adduser的区别

在使用时,你应该根据你的系统类型和你的具体需求来选择使用哪一个命令。在某些系统中,这两个命令可能是互相链接的,或者adduser可能是useradd的一个封装,提供了更完整的用户添加流程。为了避免混淆,建议查看你所在系统的手册页(或)来了解具体的命令行为和可用选项。在任何情况下,添加用户通常需要管理员权限,因此这些命令通常与sudo一起使用。

2024-11-12 17:34:20 448

原创 Rust 中的 match 基本用法

Rust 中的match是一个强大的控制流运算符,它允许你将一个值与一系列的模式进行匹配,并根据匹配的模式执行代码。以下是match。

2024-11-12 15:43:57 426

原创 掌握ROS 2的利器——详解ros2 bag的使用方法

本文将带你深入了解ros2 bag的使用方法,助你轻松记录、回放和分析ROS 2话题中的数据。摘要:本文将详细介绍ROS 2中的命令行工具ros2 bag,帮助读者了解如何记录、回放和分析ROS 2话题中的数据,从而更好地进行机器人应用程序的开发。执行此命令后,ros2 bag将显示文件中的详细信息,包括话题列表、消息类型、开始和结束时间等。本文详细介绍了ROS 2中ros2 bag命令行工具的使用方法,包括记录、回放和分析话题数据。在使用ros2 bag记录数据时,我们需要指定要记录的话题名称。

2024-11-12 11:45:37 504

原创 深入了解 Ubuntu 中的 build-essential:开发者的必备工具

build-essential 是 Ubuntu 和其他基于 Debian 的 Linux 发行版中的一个元包,它包含了编译软件所必需的工具和库。摘要:本文将介绍 Ubuntu 系统中的 build-essential 包,包括其作用、包含的工具和库,以及如何在 Ubuntu 上安装和使用 build-essential。build-essential 是 Ubuntu 系统上开发工作的重要工具之一,特别是对于那些需要编译软件的开发者来说至关重要。二、build-essential 包含哪些工具和库?

2024-11-08 19:03:55 490

原创 深入解析TOML、XML、YAML和JSON:优劣对比与场景应用

摘要:本文将介绍四种常见的配置文件和数据交换格式:TOML、XML、YAML和JSON,通过具体的使用例子分析它们的优缺点,并探讨在不同场景下的应用选择。通过上述例子,我们可以看到每种格式在数据表示上的特点。

2024-11-08 16:22:20 780

原创 window下安装rust 及 vscode配置

5. 通过 Ctrl+` 打开Terminal (或在界面点击 View -->Terminal )8. 在cmd窗口中 输入 rustc --version (可能需要重启后才能运行成功)5. 配置rustup和cargo目录 (cargo是包管理)注意: 重启后如果提示找不到命令提示,则需要将路径。点击Run后能在Terminal中看到运行成功的打印。7. 点击 下载的 rustup-init.exe。此时打开main.rs后点击Run就可以运行。可以在Terminal中直接运行。

2024-11-08 15:08:11 1574

原创 探索前端框架:为你的项目选择合适的UI工具箱

选择合适的前端框架对于项目的成功至关重要。每个框架都有其独特的特点和优势,开发者应根据项目的具体需求、团队的技术栈偏好以及期望达到的设计效果来做出选择。无论你是追求快速开发、高度定制化还是响应式设计,上述框架都能为你提供强大的支持。在开始下一个项目之前,不妨深入研究这些框架,找到最适合你的那一个。

2024-11-07 17:31:45 461

原创 使用 std::queue 来管理消息队列的单例模式实现多线程消息通知

这种处理方式确保了即使没有消息到达,程序也不会无限期地等待,并且能够优雅地处理超时情况。,表示等待被条件变量满足的条件唤醒,此时如果队列不为空,它会返回队列中的消息。如果队列不为空,我们从队列中取出并返回消息。,我们打印一条超时消息。如果返回了一个有效的消息,我们打印接收到的消息。来锁定互斥量,然后将消息推入队列,并设置。参数,表示超时时间(以秒为单位)。来等待,直到队列中有消息或者超时。函数中,我们尝试接收消息,如果。,之后通知等待的线程。,则表示等待超时,此时。,表示没有接收到消息。

2024-11-07 16:09:12 240

原创 线程同步的方法

同步两个线程通常意味着确保它们在某个特定的点上或者操作上能够协调一致。

2024-11-07 15:18:44 144

原创 std::lock_guard<std::mutex> 与 std::unique_lock<std::mutex> 的区别

和。

2024-11-07 14:56:05 228

原创 Linux下Expect脚本自动化神器:轻松实现交互式任务

Expect是一款功能强大的自动化交互脚本工具,可以大大提高Linux系统管理员的工作效率。通过本文的介绍,相信大家已经对Expect有了初步了解。在实际应用中,Expect可以结合Shell脚本,实现更复杂的自动化任务。Expect是一款强大的自动化交互脚本工具,可以在不需要人工干预的情况下,自动完成交互式任务。Expect是一款基于Tcl(Tool Command Language)的扩展,用于实现自动化的交互式任务。本文将为大家介绍Expect的基本概念、安装方法以及在Linux下的使用技巧。

2024-11-07 11:24:40 323

原创 熟普洱与菊花共舞:揭秘这一独特茶饮的优缺点

反之,若菊花比例过高,则会影响熟普洱的醇厚口感。熟普洱茶具有降脂、减肥、养胃的功效,而菊花茶则有清热解毒、平肝明目的作用。两者搭配,功效互补,对于消化不良、肝火旺盛、眼睛疲劳等症状有一定的缓解作用。它们各自具有独特的风味和功效,结合在一起,更是产生了令人惊喜的化学反应。熟普洱茶口感醇厚、回甘,带有独特的陈香;将两者结合,口感层次更加丰富,既有普洱的醇香,又有菊花的清新。若泡饮不当,可能导致普洱茶的苦涩味或菊花的寒性过于突出,影响品饮体验。将两者搭配,可以中和菊花的寒性,使茶饮更加温和,适宜更多人饮用。

2024-11-07 10:22:41 260

原创 深入解析gdb -p 与gdb attach 的区别与使用场景

在Linux系统中,GDB(GNU Debugger)是一款功能强大的调试工具,广泛应用于程序开发和调试过程。在使用GDB进行调试时,我们常常需要将GDB附加到正在运行的进程上。本文将对比两种附加进程的方法:gdb -p 和gdb attach ,分析它们的区别和使用场景。本文详细对比了gdb -p 与gdb attach 的使用方法、场景及优缺点。摘要:本文将详细对比gdb -p 与gdb attach 这两个命令的使用方法、场景及优缺点,帮助读者更好地理解并运用这两个调试工具。

2024-11-06 17:52:34 356

原创 C++中 enum class 与 enum 的区别

在C++中,enum和enum class(也称为枚举类)都是用于定义枚举类型的,但是它们在作用域、类型安全性和默认的整型转换等方面有所不同。

2024-11-06 11:42:11 329

原创 C++11中的std::shared_ptr与C++17中的std::optional 比较

std::shared_ptr和std::optional都是C++标准库中非常有用的工具,但它们适用于不同的场景。在这两个标准中,std::shared_ptr和std::optional是两个特别重要的特性,它们在处理资源管理和可选值方面提供了强大的工具。摘要: 本文将探讨C++11引入的智能指针std::shared_ptr与C++17引入的std::optional之间的差异,并分析它们在实践中的应用场景。:std::optional可以用来表示一个可能不存在的值,而不需要使用特殊的错误码或指针。

2024-11-06 11:06:22 832

原创 std::bind 的用法

std::bind是 C++11 中引入的一个功能,它属于头文件中的一部分。std::bind可以用来绑定函数和对象到特定的参数,从而创建一个新的可调用对象。这个新的可调用对象可以带有预设的参数,这样在调用时就可以省略这些参数或者改变参数的顺序。下面是std::bind。

2024-11-01 20:45:39 347

原创 深入解析C/C++中的__attribute__((packed)):内存对齐与紧打包技术

本文将详细介绍__attribute__((packed))的作用、使用场景及注意事项,帮助开发者更好地掌握内存对齐与紧打包技术。((packed))是C/C++中实现紧打包的一个重要工具,掌握其使用方法和注意事项,有助于我们在特定场景下优化内存布局。在性能要求较高的场景中,应谨慎使用。((packed))是GCC和Clang等编译器的扩展属性,用于告诉编译器对指定的结构体或联合体进行紧打包处理,消除成员间的填充。使用紧打包的结构体时,需要注意成员的访问顺序,避免因内存对齐导致的问题。

2024-11-01 19:41:06 744

原创 Ubuntu下网络抓包工具:Wireshark与Tcpdump实例解析

Wireshark适合于图形界面操作和深入分析,而Tcpdump适合于快速命令行抓包和简单的分析。打开Wireshark,点击左上角的“新建捕获”按钮,选择正确的网络接口,点击“开始捕获”按钮。本文将介绍两款主流的网络抓包工具:Wireshark和Tcpdump。总之,熟练掌握Wireshark和Tcpdump,将使您在网络世界中如虎添翼。在Wireshark中,停止捕获,然后在过滤器栏输入“http”,按回车键。在显示的结果中,双击一个HTTP数据包,查看详细信息。实例:捕捉特定端口的TCP数据包。

2024-11-01 10:24:15 462

Git-2.8.1-64-bit

2016-07-18

空空如也

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

TA关注的人

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