- 博客(336)
- 资源 (8)
- 收藏
- 关注
原创 spdlog 打印 int 变量为十六进制格式
在使用 spdlog 打印 int 变量为十六进制格式时,可以使用格式化字符串来指定输出格式。spdlog 支持 C++ 的格式化字符串,并允许你轻松地以十六进制格式打印整数。{:#x}: 以小写字母的形式打印十六进制数,并带有 0x 前缀。{:x}: 以小写字母的形式打印十六进制数,不带前缀。{:X}: 以大写字母的形式打印十六进制数。十六进制值 (小写): ff。十六进制值 (大写): FF。十六进制值: 0xff。
2024-11-26 16:06:50
407
原创 在 Ubuntu 18.04 中搭建和测试 DNS 服务器
在 Ubuntu 18.04 中搭建和测试 DNS 服务器可以通过安装和配置BIND(Berkeley Internet Name Domain)来实现。
2024-11-11 15:42:40
700
原创 macos中安装和设置ninja
这一步若报错:autoreconf: command not found,说明未安装automake,执行第2步安装automark;若执行成功直接执行第3步。(也可直接下载最新的release压缩包,并解压。下载地址:https://github.com/skvadrik/re2c/releases)/.bash_profile文件中,设置alias=/Users/mac/code/ninja/ninja,没起作用。以上步骤完成之后,接着执行第1步。
2024-11-07 21:13:33
725
1
原创 windows中使用vscode的remote-ssh连接linux失败
在Windows的目录下解压(免安装):C:\user1\Programs\PortableGit-2.46.0-64-bit\。[14:36:31.126]Install terminal quit with output:过程试图写入的管道不存在。[14:36:31.126]Received install output:过程试图写入的管道不存在。设置vscode的 Remote-SSH:Ctrl + Shift + p。过程试图写入的管道不存在。
2024-08-23 15:25:59
557
1
原创 如何在ubuntu 18.04中升级python 3.6到3.7
这意味着当我们运行python3时,它将作为python3.6执行,但我们希望将其作为python3.7执行。请记住,选择号可能会有所不同,因此请选择适用于Python 3.7的选择号。使用命令python3 -V,可发现输出为python 3.6.8, 使用以下步骤升级python3 至python 3.7。4)至此,Python 3.7已安装在您的Ubuntu系统上,可以使用了。5)将Python 3.6和Python 3.7添加到更新替代项。6)更新Python 3以指向Python 3.7。
2024-03-20 23:11:08
1127
原创 ubuntu root登陆桌面及ssh失败
1,在终端中输入如下命令,打开文件将打开的文件中第三行语句前加#,如下注释掉语句 “#auth required pam_succeed_if.so user!2,保存并退出,继续在终端执行将打开的文件中第三行语句前加#, 如下注释掉语句 “#auth required pam_succeed_if.so user!3,保存并退出。在终端继续执行将打开的文件中“mesg n 2> /dev/null || true” 改为4,保存并退出。5,重启电脑,即可以root用户登录。
2024-03-09 10:44:20
1035
原创 博客摘录「 Nginx—Linux系统配置Nginx代理服务器的详细步骤(一)」2023年12月1日
设置正向代理服务器,当然前提是要知道正向代理服务器的。
2024-02-25 20:36:31
423
原创 Linux的expect工具完成命令行参数传递及可执行文件注入shell脚本
a.out每次只能得出一个结果,且需要根据提示,手动输入不同的参数。注:__EOF__需要顶头编写。
2024-02-20 20:56:00
767
原创 gdb调试std::list和std::vector等容器的方法
GDB中print方法并不能直接打印STL容器中保存的变量,其实只要http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt这个文件保存为~/.gdbinit 就可以使用它提供的方法方便调试容器。2.3、添加“set auto-load safe-path ./”到./.gdbinit文件中,相当于禁用了安全路径的保护;指定启动文件:~/.gdbinit,下面的方法任选其一。/.gdbinit文件中,使该文件可以被加载;
2024-01-27 14:37:49
1331
原创 Linux的ps简单实现
原理:遍历下的/proc/%s/task/%s/status所有文件,两个%s都为pid号。注:多线程下,只打印一个pid/task下的所有目录,即可收集各个线程对应的信息。
2023-12-11 22:24:03
394
原创 __attribute__((__used__)) 和 __attribute__((__section__(“*“ “*“)))的使用
C语言注册函数和调用函数。见:haproxy代码。
2023-11-06 20:23:35
636
原创 Docker容器内用户与宿主机用户同名不同ID的问题
注:在Docker容器中,ubuntu用户登陆,不要使用sudo去修改ubuntu的uid和gid,会提示:“sudo: unknown uid 1000: who are you?”,发生骑驴找驴的问题。使用宿主机的同名用户登陆Docker容器,执行文件修改操作,提示:Permission denied.影响:会导致使用ubuntu的同名用户进入Docker容器后,修改文件和创建目录等操作没有权限。(1)在Docker容器中,使用root账户,修改ubuntu用户的uid和gid。
2023-10-24 20:17:33
1405
原创 Qt Creator使用Clang Format方法
习惯性的想格式化代码,发现Qt Creator默认居然是没有代码格式化的,只有一个缩进。Qt Creater中有个插件:beautifier,在"帮助->关于"插件中,开启“Beautifier”即可(会提醒需要重启Qt creator)。注:Qt Creator安装包中不包含这个格式化工具,它的作用是调用格式化工具进行格式化。官方的说支持三种外部格式化工具:Artistic Style、ClangFormat、Uncrustify 。这里仅以 ClangFormat 来说明:ClangFormat
2023-08-31 12:45:19
1281
原创 ubuntu 18.04 radius 服务安装配置
缺点:每次新增用户都需要重启服务端服务,且用户新增用户方式不友好,需要修改/etc/freeradius/3.0/users文件。解决方案:radius + 数据库。注:注意tab对齐。
2023-07-09 16:59:22
1703
原创 在Ubuntu中安装和设置samba
1、安装Samba服务2、配置samba2.1 先备份sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak,以防改错,修改配置文件时建议养成备份的好习惯,改错了还能恢复.2.2 sudo vim /etc/samba/smb.conf 修改配置,添加共享,可直接加到文件尾4、添加samba用户添加samba用户,用于其他人或设备认证,这里添加的用户需要在系统账号中存在,否则添加失败。
2023-06-11 08:12:52
7587
原创 关于python的第一行代码的理解
usr/bin/env python3 这种用法是为了防止操作系统用户没有将 python3 装在默认的 /usr/bin 路径里。/usr/bin/python3 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python3 解释器;/usr/bin/env python3 会去环境设置寻找 python3 目录,推荐这种写法。/usr/bin/python 被忽略,等同于注释。/usr/bin/python 指定解释器的路径。
2023-05-08 15:39:09
1118
原创 centos 7修改用户名
1、使用root用户进行修改devel用户名为test。2、修改sudoers中,devel为test。3、修改设备的用户名dev-1为tst-1。
2023-04-15 17:04:14
3719
原创 Qt has modification time xxx s in the future
现象:编译Qt程序时,提示warning: File ‘/opt/Qt5.12.8/5.12.8/gcc_64/mkspecs/linux-g++/qmake.conf’ has modification time 716043631 s in the future。发现设备上的Qt目录的时间戳都是2045年,由于安装Qt时,系统没有安装ntp,导致系统没有同步时间,因此安装后的Qt文件都是2045年。(1)在unbuntu上安装ntp,获取正确的时间。(2)批量更新目录的时间戳。
2022-10-15 21:18:54
1211
原创 error: ‘make_unique‘ is not a member of ‘std‘
【代码】error: 'make_unique' is not a member of 'std'
2022-09-21 21:12:25
1919
原创 ubuntu程序崩溃时没有生成coredump文件的解决办法
ubuntu程序崩溃但没有生成core文件1、下载工具:2、开启产生core3、如果程序发生了core dump,使用coredumpctl list查看有没有产生core文件。4、查看core文件的压缩包5、使用liblz4-tool提供的命令解压lz4文件。
2022-06-01 09:28:50
2857
原创 c++ priority_queue的简单使用
1、priority_queue<float, vector< float>, less< float>> 注:默认是less#include <iostream>#include <queue>#include <vector>using namespace std;void test_1(void){ cout << endl << "test_1: " << endl;
2022-04-19 10:20:25
926
原创 【shell】 =~的使用
如下:read -p "need compile OEM installatoin package?yes/[no]" IS_OEMif [[ "Yes" =~ $IS_OEM || "yes" =~ $IS_OEM ]]then ...fineed compile OEM installatoin package?yes/[no]yneed compile OEM installatoin package?yes/[no]Yneed compile OEM install
2022-03-31 16:23:33
14151
2
原创 Linux系统中通过流量定位进程
问题:系统的虚拟网卡有一个莫名的流量一直存在,不知道是系统中的什么进程发出的?目标:根据流量的dst+dport查找对应的进程。1、在系统中,使用tcpdump工具,锁定流量的目的IP地址(11.178.11.150:80)。#sudo tcpdump -i tun0 -n09:04:47.452332 IP 111.111.111.100.32980 > 111.178.11.150.80: Flags [S], seq 2183603593, win 64240, options [mss
2022-03-22 09:45:55
1134
原创 c++ 移动语义与拷贝
移动语义:传统 C++ 通过拷贝构造函数和赋值操作符为类对象设计了拷贝/复制的概念,但为了实现对资源的移动操作, 调用者必须使用先复制、再析构的方式,否则就需要自己实现移动对象的接口。 试想,搬家的时候是把家里的东西直接搬到新家去,而不是将所有东西复制一份(重买)再放到新家、 再把原来的东西全部扔掉(销毁),这是非常反人类的一件事情。传统的 C++ 没有区分『移动』和『拷贝』的概念,造成了大量的数据拷贝,浪费时间和空间。 右值引用的出现恰好就解决了这两个概念的混淆问题,例如:移动语义:~/tes
2022-03-09 10:53:42
950
原创 c++ lambda的按值访问和按引用访问
$ cat test2.cpp#include <iostream>using namespace std;void lambda_test(void){ int x = 2; int y = 10; auto lambda = [x, &y] { //此处x = 2,会影响测试1和测试2中的x。 cout << "x: " << x << endl; cout <&l
2022-03-02 09:52:27
938
原创 c++中关于默认值的设置
测试代码:$ cat test4.cpp#include <iostream>using namespace std;void func(int a, int b, int c = 10);void func2(int a, int b, int c);int main(int argc, char *const argv[]){ func(1, 2); func(1, 2, 3); func2(1, 2); //oops !!!!! fun
2022-02-28 10:30:42
1652
原创 cmake CMAKE_CXX_COMPILER_VERSION 检查失败
1、CMakeLists.txt文件:$ cat ../CMakeLists.txtcmake_minimum_required(VERSION 2.8)project(MyTinySTL)# versionset(MyTinySTL_VERSION_MAJOR 2)set(MyTinySTL_VERSION_MINOR 0)set(MyTinySTL_VERSION_PATCH 0)set(MyTinySTL_VERSION "${MyTinySTL_VERSION_MAJOR}.${
2022-02-19 12:54:39
3777
原创 c++ map用法
#include <iostream>#include <map>using namespace std;class Test_t { private: int a; public: Test_t(int a) { this->a = a; } ~Test_t() { cout << "des
2022-02-16 10:45:21
343
原创 Qt使用命令行编译pro
1、无pro文件的情况下:该情况下,一般是纯代码编写程序,写好程序后,需要生成pro文件后,才能编译。生成pro文件的方法:$ qmake -project注: 生成pro文件后,需要手动在pro文件的最后添加一行代码:greaterThan(QT_MAJOR_VERSION, 4):QT +=widgets2、有pro文件的情况下:该情况下,是已经根据代码((纯命令行程序或带图形化界面程序))生成pro文件,使用Qtcreator可正常编译,但想通过shell脚本替代Qtcreator进
2022-01-21 10:12:28
4097
原创 多线程的条件变量使用
上面的例子来自《Linux环境高级程序设计》- 黄茹,会出现死锁等待的情况,如下两个例子中,一个是对上面的问题的优化,另一个用于熟悉条件变量的使用。#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <string.h>#include <unistd.h>pthread_mutex_t mutex;pthread_cond_t empty;pthr.
2021-10-20 11:18:04
196
原创 centos7安装mariadb
参考:https://www.cnblogs.com/yhongji/p/9783065.html# yum install mariadb-server# yum install mariadb-devel问题:cannot find -lmysqlclient;(1)先确认一下是否已安装mariadb-devel,执行:# rpm -qa | grep mariadbmariadb-server-5.5.68-1.el7.x86_64mariadb-5.5.68-1.el7.x86_64
2021-10-11 20:10:38
468
原创 c++从一个map复制到另一个map
$ cat test_map.cpp#include <iostream>#include <map>using namespace std;class Test { public: int a; int b; Test(int a, int b) { this->a = a; this->b = b; }
2021-08-09 17:04:43
11324
原创 使用PuTTY上传和下载文件
使用PuTTY(C:\Program Files\PuTTY)上传或下载文件;双击运行该psftp.exe,可使用open打开远程主机、cd改变远程目录、lcd改变本地目录、ls查看远程文件列表、put上传文件、get下载文件等命令login in and upload file:psftp> open 192.168.3.13login as: useruser@192.168.3.13's password:Remote working directory is /home/user
2021-08-07 10:05:18
10941
原创 Linux下Perf的使用
Perf安装:Perf的源代码,一般都是内置在linux内核源码的tool目录下的。一般如下是可以的:sudo apt-get install linux-sourcecd /usr/srccd tools/perfmake && make install
2021-07-25 23:25:43
266
原创 centos8安装汇编环境
nasm安装官网:https://www.nasm.us/su -c 'curl https://www.nasm.us/nasm.repo | tee /etc/yum.repos.d/nasm.repo'yum install nasm注:su -c command : 切换到root用户并执行command。tee: 用于重定向到文件
2021-07-25 10:30:59
355
原创 Linux 配置6rd过程
3.2 Linux的配置步骤:三台Linux虚拟构建网络拓扑。#配置CE设备ip address add 192.168.110.27 dev eth0ip link set eth0 upip tunnel add kali006rd mode sit local 192.168.110.27ip tunnel 6rd dev kali006rd 6rd-prefix 2012:db8::/32 6rd-relay_prefix 192.168.147.136/32ip link set k
2021-05-13 14:45:11
764
the java programming language fourth editionArnoldGoslingHolmes06
2014-08-30
vivi-boot loader
2014-08-30
BootLoader技术内幕
2014-08-30
ascii-码表
2014-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人