<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[beeworkshop的博客]]></title><description><![CDATA[后死诸君多努力，捷报飞来当纸钱。]]></description><link>https://blog.youkuaiyun.com/beeworkshop</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; beeworkshop]]></copyright><item><title><![CDATA[c++杂谈-5]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/132265891</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/132265891</guid><author>beeworkshop</author><pubDate>Mon, 14 Aug 2023 23:39:23 +0800</pubDate><description><![CDATA[decltype只分析表达式并得到它的类型，不会计算执行表达式。decltype分析函数也只是一种表达式，因此不必担心在使用decltype时调用了函数。C++14标准对函数返回类型推导规则做了优化，函数的返回值可以用auto，不必尾随返回类型。auto是一个占位符（C++11给auto新增的角色），为函数返回值占了一个位置。函数的类型是指：返回值和参数列表（函数名和形参名不是）——形参只涉及个数与类型。回调函数：函数由用户定义，但调用不由用户来完成，调用随后交给系统/框架去完成。]]></description><category></category></item><item><title><![CDATA[c++杂谈-4]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/132250086</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/132250086</guid><author>beeworkshop</author><pubDate>Sun, 13 Aug 2023 21:39:35 +0800</pubDate><description><![CDATA[另外，枚举名的作用域为枚举定义所属的作用域，这意味着如果在同一个作用域内定义两个枚举，它们的枚举成员不能同名。最后，枚举可能不是可完全移植的，因为不同的实现可能选择不同的底层类型。例如，可以将0传递给形参为int的函数，但是，如果将nullptr传递给这样的函数，编译器将视为错误。以前，C/C++用0表示空指针，这带来了一些问题，这样的话0既可以表示指针常量，又可以表示整型常量。为了避免延时，就需要将变量用volatile修饰，达到的效果就是强制CPU去直接读内存中的变量值。register修饰的变量是。]]></description><category></category></item><item><title><![CDATA[c++杂谈-3]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/132233820</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/132233820</guid><author>beeworkshop</author><pubDate>Sat, 12 Aug 2023 16:05:27 +0800</pubDate><description><![CDATA[含完美转发，Eclipse CDT环境，断言，时间应用]]></description><category></category></item><item><title><![CDATA[c++杂谈-2（栈堆的内存布局）]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/132175681</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/132175681</guid><author>beeworkshop</author><pubDate>Fri, 11 Aug 2023 09:11:48 +0800</pubDate><description><![CDATA[动态链接库.so加载内存后.code代码段为所有进程共享，但.data数据段中开辟一个GOT，GOT及.data在每个进程中保留一份独立的副本。通过共享的.code相对于.data寻址查找GOT表项，从而定位（重定位）其他.code的方式。结果动态链接库的.code代码段可以在内存中被所有进程共享，通过代码段的地址相对寻址GOT表项，查表后再确定其他动态库的代码段地址。编译的时候，头文件.h是不编译的（一般里边只有声明），编译的基本单元是.c或者.cpp文件（.c和.cpp都是编译单元）。]]></description><category></category></item><item><title><![CDATA[c++杂谈-1]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/132137364</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/132137364</guid><author>beeworkshop</author><pubDate>Tue, 08 Aug 2023 20:04:30 +0800</pubDate><description><![CDATA[先生成xxx.dll，xxx.lib和xxx.h文件，再让程序利用xxx.lib和xxx.h文件编译得到xxx.exe文件，最后让xxx.exe在当前目录或者系统目录下加载xxx.dll文件并引用其中的函数。需要三个文件的支持。就是利用windows的API函数直接在程序中动态加载dll文件并使用其中的导出函数。非静态函数也就是全局函数，可以在整个项目任何的.c文件中访问。对于c++，则需要导出类的成员函数到lib文件中。system()函数可以调用系统的外部程序。接下来使用新建的项目调用dll并测试。]]></description><category></category></item><item><title><![CDATA[Linux下使用CMake编译C++的基本方法]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/130694376</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/130694376</guid><author>beeworkshop</author><pubDate>Mon, 15 May 2023 22:52:08 +0800</pubDate><description><![CDATA[Linux下使用cmake编译c++程序]]></description><category></category></item><item><title><![CDATA[C++开发环境的搭建-Windows：VSCode+mingw64+CMake]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/130596755</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/130596755</guid><author>beeworkshop</author><pubDate>Wed, 10 May 2023 21:19:12 +0800</pubDate><description><![CDATA[这里要注意：VSCode中将一个打开的目录作为项目目录，并在该目录中自动生成.vscode目录——该目录中的settings.json作为CMake插件在VSCode中的配置文件。应该将本项目的总控CMakeLists.txt放置在和.vscode/同级的目录中，否则VSCode的CMake插件将不识别项目的目录。生成的tasks.json不用修改，只需记录tasks.json文件中的”label“配置，并把label选项的内容拷贝到launch.json中完成配置即可。配置基本与前边单文件调试设置类似。]]></description><category></category></item><item><title><![CDATA[ES6形式常用的数组遍历函数]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/124488115</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/124488115</guid><author>beeworkshop</author><pubDate>Fri, 29 Apr 2022 12:18:05 +0800</pubDate><description><![CDATA[文章目录0. 给定一个数组1. find()：查找成员对象2. findIndex()：查找成员下标3. filter()：过滤数组4. forEach()：迭代数组5. some()和every()：量词遍历6. map()：变换7. reduce()：规约

0. 给定一个数组
const arr = [{
	name: '袁绍',
		age: 33,
		title: '本初',
		index: 2
	},
	{
		name: '曹操',
		age: 40,
		title: '孟德',
		]]></description><category></category></item><item><title><![CDATA[将Vue2中的console.log()调试信息移除]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/124235317</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/124235317</guid><author>beeworkshop</author><pubDate>Sun, 17 Apr 2022 22:17:16 +0800</pubDate><description><![CDATA[1. 安装babel-plugin-transform-remove-console插件
cnpm install babel-plugin-transform-remove-console --save-dev

2. 在babel.config.js配置文件中加入配置
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ],
  plugins: [ // 加入以下内容，引入插件。
    'transform-rem]]></description><category></category></item><item><title><![CDATA[Git如何撤销提交（命令行+IDEA）]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/123901045</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/123901045</guid><author>beeworkshop</author><pubDate>Fri, 01 Apr 2022 17:10:00 +0800</pubDate><description><![CDATA[文章目录一、基于命令行1. 工作区的代码想撤销2. add到暂存区的代码想撤销3. 提交到本地仓库的代码想撤销4. 远程仓库的代码想要撤销二、基于 IDEA1. 未提交就撤销2. commit 了想撤销Undo CommitRevert Commit3. push 了想撤销

一、基于命令行
1. 工作区的代码想撤销
可能有一天我正在写代码，写了很久发现写错了，想恢复到一开始的状态，一个笨办法就是把刚刚写的代码一行一行的删除，不过这种方式成本太高，我们可以通过git checkout – &lt;file&]]></description><category></category></item><item><title><![CDATA[java与网络（IPv4组播）]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/122338503</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/122338503</guid><author>beeworkshop</author><pubDate>Thu, 06 Jan 2022 10:39:13 +0800</pubDate><description><![CDATA[1. 接收组播包
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;

public class MulticastReceiver {

	public static void main(String[] args) {
		InetAddress group = null;
		int port = 0;

		try {
			group = InetAddress.]]></description><category></category></item><item><title><![CDATA[java将byte类型转换为int类型]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/122261083</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/122261083</guid><author>beeworkshop</author><pubDate>Fri, 31 Dec 2021 18:30:13 +0800</pubDate><description><![CDATA[Java没有无符号字节这种基本数据类型。当值大于127的字节会当作负整数。那么如何将Java的字节转换为int类型？
int unsignedByte = signedByte &lt; 0 ? signedByte + 256 : signedByte;


]]></description><category></category></item><item><title><![CDATA[关于SSHD的端口维护（改变及增加侦听端口）]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/120665915</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/120665915</guid><author>beeworkshop</author><pubDate>Sat, 09 Oct 2021 10:38:55 +0800</pubDate><description><![CDATA[常见的有两种维护需求
1. 改变SSHD的侦听端口
vim /etc/ssh/sshd_config
Port 2222
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

效果
[root@server ~]# systemctl restart sshd
[root@server ~]# netstat -ntpl | grep sshd
tcp        0      0 0.0.0.0:2222            0.0.]]></description><category></category></item><item><title><![CDATA[SpringBoot 解决跨域，3种解决方案！]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/119449423</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/119449423</guid><author>beeworkshop</author><pubDate>Fri, 06 Aug 2021 11:22:27 +0800</pubDate><description><![CDATA[文章目录一、问题背景：二、CORS简介:三、详解响应头：Access-Control-Allow-Origin 该字段必填。Access-Control-Allow-Methods 该字段必填。Access-Control-Expose-Headers 该字段可选。Access-Control-Allow-Credentials 该字段可选。Access-Control-Max-Age 该字段可选。四、解决办法：第一种办法:第二种办法:第三种办法：五、文章出处

一、问题背景：
Same Origin Po]]></description><category></category></item><item><title><![CDATA[一个rsync数据备份的方法（rsync单向）]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/118852536</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/118852536</guid><author>beeworkshop</author><pubDate>Sat, 17 Jul 2021 12:59:54 +0800</pubDate><description><![CDATA[文章目录一、定时同步1. 配置免密登陆2. 编写shell脚本3. crontab定时执行二、触发式/实时同步1. 在服务器B上调整inotify内核参数2. 使调整inotify内核参数立刻生效3. 安装Inotify-Tool工具4. 测试5. 编写脚本6. 配置systemd开机自启

软件安装
yum install rsync -y

注意：参与同步的服务器上都要安装rsync。
一、定时同步
1. 配置免密登陆
2. 编写shell脚本
#!/bin/bash
# backup.sh
rsync]]></description><category></category></item><item><title><![CDATA[常用 Linux 维护技巧]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/118754284</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/118754284</guid><author>beeworkshop</author><pubDate>Thu, 15 Jul 2021 11:16:04 +0800</pubDate><description><![CDATA[文章目录谨慎删除文件关闭别名使用 sudo使用别名命令编辑及光标移动历史命令快速执行实时查看日志磁盘或内存情况查看当前内存使用情况使用-h参数根据名称查找进程id根据名称杀死进程查看进程运行时间快速目录切换多条命令执行查看压缩日志文件清空文件内容将日志同时记录文件并打印到控制台终止并恢复进程执行小程序运行的时间查看内存占用前10的进程快速查找你需要的命令命令行下的复制粘贴搜索包含某个字符串的文件屏幕冻结无编辑器情况下编辑文本文件查看elf文件查看库中是否包含某个接口命令编辑使用远程机器的名称登录到机器上执行]]></description><category></category></item><item><title><![CDATA[Spring框架中Bean的生命周期]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/118498974</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/118498974</guid><author>beeworkshop</author><pubDate>Mon, 05 Jul 2021 21:26:38 +0800</pubDate><description><![CDATA[文章目录首先简单说一下（以下为一个回答的参考模板）结合代码理解一下1、Bean的定义2、Bean的初始化3、Bean的调用4、Bean的销毁

首先简单说一下（以下为一个回答的参考模板）
1、实例化一个Bean－－也就是我们常说的new；
2、按照Spring上下文对实例化的Bean进行配置－－也就是IOC注入；
3、如果这个Bean已经实现了BeanNameAware接口，会调用它实现的setBeanName(String)方法，此处传递的就是Spring配置文件中Bean的id值
4、如果这个Bean已]]></description><category></category></item><item><title><![CDATA[使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/117811407</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/117811407</guid><author>beeworkshop</author><pubDate>Fri, 11 Jun 2021 11:47:19 +0800</pubDate><description><![CDATA[使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接
脚本可清除，指定文件夹下，对视链接文件的符号链接。
在使用Linux时，常常会为自己许多文件或者程序建立符号链接，这样就不用每次都到对应的文件夹下去寻找对应的文件而只需要对需要经常访问的文件建立符号链接就可以了，这样就能把你常需要访问的文件放到桌面上，或者指定到另外一个文件夹中。
这样访问时，方便了很多，但是用完之后往往留下许多的符号链接，这些链接需要用户自己手动确认是否可以删除，为linux的使用带来很多的不方便，使用该脚本就能解放你的双手，只需要执]]></description><category></category></item><item><title><![CDATA[Linux NTP时间同步服务]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/117734054</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/117734054</guid><author>beeworkshop</author><pubDate>Wed, 09 Jun 2021 11:34:11 +0800</pubDate><description><![CDATA[文章目录一、时间时区概念二、ntpd 与 ntpdate三、部署 NTP 服务1 服务软件的安装2 服务的基本配置(/etc/ntp.conf)3 设置系统开机自启动4 加入防火墙5. 将正确时间写入硬件6. 客户端使用配置7. 查看 ntp 同步状态

一、时间时区概念


UTC
整个地球分为二十四时区，每个时区都有自己的本地时间，在国际无线电通信场合，为了统一起见，使用一个统一的时间，称为通用协调时。


GMT
格林威治标准时间指位于英国伦敦郊区的皇家格林尼治天文台的标准时间，因为本初子午线被定义在]]></description><category></category></item><item><title><![CDATA[常用正则表达式速查（备忘版）]]></title><link>https://blog.youkuaiyun.com/beeworkshop/article/details/116913654</link><guid>https://blog.youkuaiyun.com/beeworkshop/article/details/116913654</guid><author>beeworkshop</author><pubDate>Mon, 17 May 2021 09:19:38 +0800</pubDate><description><![CDATA[文章目录一、校验数字的表达式二、校验字符的表达式三、特殊需求表达式四、在线测试

一、校验数字的表达式
数字：^[0-9]*$

n位的数字：^\d{n}$

至少n位的数字：^\d{n,}$

m-n位的数字：^\d{m,n}$

零和非零开头的数字：^(0|[1-9][0-9]*)$

非零开头的最多带两位小数的数字：^([1-9][0-9]*)+(.[0-9]{1,2})?$

带1-2位小数的正数或负数：^(\-)?\d+(\.\d{1,2})?$

正数、负数、和小数：^(\-|\+)?\d+(\]]></description><category></category></item></channel></rss>