唐墨123
我的生涯一片无悔,我想起那天夕阳下的奔跑,那是我逝去的青春。
展开
-
c++后端面试测试题解
测试:1 编程,实现每5秒检查进程SchLdr是否运行正常,不正常请启动SchLdr?#!/bin/bash# function detect_process() { PROCESS=$1 process_pid=`pidof $PROCESS` echo $process_pid if [ "x$process_pid" != "x" ];then return 0...原创 2020-02-13 00:30:47 · 921 阅读 · 0 评论 -
《一个电子工程师的12年》
redis、mysql、sqlite、kafka、zeromq、mongodb、http/https、rest api、mqtt、thread pool、go routine等等,陷入了复杂重复的循环中,中间,我见过形形色色的人,有的很傻,有的很自私,有的很狭隘,有的很极端,有的很要面子,有的很无耻,有的很卑鄙,有的人能当着你的面出尔反尔,这些人的所作所为有适合能惊掉你的下巴……2012年专科毕业,单片机没有学会,keil也不熟悉,protel 99se不熟悉,烙铁不熟悉,就突然毕业了。原创 2024-02-29 00:06:40 · 67 阅读 · 0 评论 -
从二极管到linux服务器
tcp(单片机信号控制)、udp(游戏)、mqtt(iot物联网传感器)、websocket(游戏、新媒体)、webrtc(用于流媒体、IM聊天软件)需要对寄存器、单片机内部总线、iic、spi、uart、can、modbus、fsmc(8080/8060)协议、sdio协议比较了解。2)模拟电路,LM358运算放大器、电压跟随器、PLL锁相环电路、加法电路、乘法电路、三角波、锯齿波、方波、sin波、恒流/压电路。对os任务切换时寄存器的功能有理解。低功耗蓝牙、wifi、zigbee、2.4G、433等。原创 2023-11-24 11:39:26 · 293 阅读 · 0 评论 -
键盘特殊符号
在代码中写流程图时,需要一些特殊符号,键盘不方便输入,这里用文档记录下来,以方便使用╮╭╯╰►▼▲例如以下代码的注释部分:// Component defines the lifecycle of managed components./// Created ――――――――――――――――――――――►(Stop)―――╮// ╰―(Init)―► Initialized ―――――――►(Stop)――╮│// ╰―(Ru原创 2022-05-11 15:32:36 · 740 阅读 · 0 评论 -
centos8.5 搭建k8s--1.23.1集群
1、kubernetes安装介绍1.1 K8S架构图在这里插入图片描述master节点用于管理整个k8s集群slave节点用于运行容器1.2 K8S搭建安装示意图3种网络类型:host机网络,master用于管理k8s集群pod网络,pod之间互相调用service网络,对外提供服务1.3 节点设置:1 节点资源:节点ip节点角色192.168.1.101k8s-master192.168.1.102k8s-node1192.168.1原创 2021-12-19 17:44:53 · 132 阅读 · 0 评论 -
如何从零开始搭建一个完整的K8S集群-------基于CentOS 8系统
k8s集群搭建:k8s有三个重要组件:使用kubeadm是k8s官方推荐的一个进群部署工具kubectl 是命令行客户端(相当于mysql)kubelet 是后台进程(相当于mysqld)软件环境:虚拟机: VMware® Workstation Pro 15操作系统:CentOS Linux release 8.1创建三个centos节点:10.0.0.180 k8s-master10.0.0.91 k8s-nnode110.0.0.136 k8s-nnode2查看c原创 2020-06-03 19:19:12 · 3972 阅读 · 4 评论 -
vimgrep 使用
在 Linux 中搜索文件最长用到的搜索工具是 Grep ,在使用 Vim 开发时第一时间想到是不是也可以在 Grep ,Google 后发现果然 Vim 内置有 Grep,下面我们一起看下 Grep 怎么使用lvimgrepquickfix-list vs location-listvimgrep:在 Vim 命令行模式下输入 :h vimgrep 可以看到 vimgrep 的使用文档命令::vim[grep][!] /{pattern}/[g][j] {file} ...:vim[.原创 2021-12-23 14:14:26 · 812 阅读 · 0 评论 -
cpp源码-->打包-->容器实例
main.cc文件内容#include <iostream>#include <fstream>using namespace std;int main(int argc, char**argv) { cout << "a " << endl; std::string file_name= "/tmp/rnboxlog.txt"; std::fstream logfile(file_name.c_s原创 2021-12-04 18:34:56 · 415 阅读 · 0 评论 -
创建raid0矩阵的2个工具举例
zpool工具:格式化ssd为ext4文件系统:root@ipfs:~# mkfs.ext4 /dev/nvme3n1 root@ipfs:~# mkfs.ext4 /dev/nvme2n1 root@ipfs:~# mkfs.ext4 /dev/nvme1n1 root@ipfs:~# mkfs.ext4 /dev/nvme0n1 mke2fs 1.44.1 (24-Mar-2018)Found a sun partition table in /dev/nvme0n1Proceed an原创 2021-11-12 17:10:36 · 12058 阅读 · 0 评论 -
linux/windows 文件编码问题
linux下执行shell脚本时报错:-bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory。原因是windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识。查看文件格式有三种方法:1.cat -A ,如果输出结果中行末尾是^M,则是dos格式,如果行末尾只是,则是dos格式,如果行末尾只是,则是dos格式,如果行末尾只是,则是unix格式。2.vim原创 2021-10-22 10:57:27 · 204 阅读 · 0 评论 -
virtualbox 扩展ubuntu虚拟机磁盘空间
第一步:第二步:第三步:第四步:安装磁盘管理工具:sudo apt install gparted -y原创 2021-10-22 00:32:43 · 9380 阅读 · 0 评论 -
清理ubuntu 磁盘
删除过期的历史版本缓存#!/bin/bash# Removes old revisions of snaps# CLOSE ALL SNAPS BEFORE RUNNING THISset -eusnap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do snap remove "$snapname" --revision="$revision" done.原创 2021-10-18 21:37:57 · 159 阅读 · 0 评论 -
git 常用命令集合
分支创建:git branch jack_tool切换到新创建分支:git checkout jack_tool删除分支:#查看分支:root@ubuntu:~/go/src/github.com/lotus# git branch jack_tool master testing tmproot@ubuntu:~/go/src/github.com/lotus# g#删除远程分支:root@ubuntu:~/go/src/github.com/lotus# git原创 2021-04-28 18:04:14 · 131 阅读 · 0 评论 -
ubuntu磁盘空间清理
查看内核版本:root@jack-VirtualBox:~/# uname -aLinux jack-VirtualBox 5.11.0-37-generic #41~20.04.2-Ubuntu SMP Fri Sep 24 09:06:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linuxroot@jack-VirtualBox:~/#查看安装的内核:root@jack-VirtualBox:~/# dpkg --get-selections|grep linu原创 2021-10-15 10:29:45 · 391 阅读 · 0 评论 -
设置linux启动级别
linux系统启动级别的影响:大部分时间linux系统只需要运行在多用户模式下,没有了GUI后可以节省系统资源。查看默认级别:systemctl get-default设置linux启动级别:命令行设置运行级别的命令格式:systemctl <command> <unit.target>command 参数选项:get-default 查看默认运行的 target(重启后默认进入的运行级别)set-default 设置指定的 target 为默认的运行级别(.原创 2021-07-22 09:14:54 · 644 阅读 · 3 评论 -
c++ 实现旋转加载图标
//main.cc#include <stdio.h>#include <iostream>#include <string>#include <unistd.h>using namespace std;string spinChars = "|/-\\";typedef struct SSpinner { string message; int i;}Spinner_;SSpinner * NewSpi原创 2021-06-14 10:20:47 · 165 阅读 · 0 评论 -
查看linux开机启动项
linux 查看全部的系统服务:root@ubuntu:~/root/# systemctl list-unit-filessystemd-udevd-control.socket static systemd-udevd-kernel.socket static uuidd.socket enabled basic.target原创 2021-06-11 10:35:45 · 3180 阅读 · 1 评论 -
修复磁盘命令
windows 系统:打开dos终端,输入以下命令:chkdsksfc/scannowlinux系统:fsck -t ext4 -v /dev/sda1原创 2021-06-05 11:28:28 · 1917 阅读 · 0 评论 -
java 下载视频文件
import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;public class HelloWorld { public s原创 2021-02-04 15:13:03 · 1321 阅读 · 5 评论 -
linux 测试网速
```shellroot@user:/tmp# wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py--2020-11-12 07:20:19-- https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pyResolving raw.githubusercontent.com (raw.githubuser..原创 2020-11-12 15:40:15 · 315 阅读 · 0 评论 -
应用程序构建消息队列2
人到中年,是一个转折点,以后的路要思考清楚。见多了文人莫名奇怪的相轻。感谢某个业界大神鼓励说30岁是一个程序员的巅峰时刻。本文实现的消息队列,是用list.h实现的。适用于以下场景:线程之间异步性比较明显(执行需要时间,需要事件回调)的情况,消息类型比较多的情况。这篇文章的内容是博主为一个windows服务器写的消息队列,等下去书香门第上河坊散步,就之间粘贴了,不再修改为linu,如有需要可自行编辑一把(工作量倒不是很大,顺便加深理解,哈哈)。说来也奇怪,在2年前博主还大骂windows烂,骂gol原创 2020-07-28 21:47:03 · 287 阅读 · 4 评论 -
剪切Linux内核代码---为应用程序构建消息队列1
从linux 内核中,可以提炼出两个队列设计模型:1)一个是基于kfifo的队列,队列每个节点的数据块大小必须一致,适合做单一的消息投递任务。2)一个是基于list.h的队列,链表形式,适合做reactor模型下面的多线程消息交互任务。本文实现的是第一种方式,第二种方式在另外一篇文章里面(正在编辑)。写文档始终是一件麻烦的事情,写文档太耗时间了,不太想写文档。按照我们的传统,先上源码吧:// kfifo.h#ifndef __KFIFO_H#define __KFIFO_H#inclu原创 2020-07-25 20:20:22 · 262 阅读 · 0 评论 -
《linux内核源码分析----定时器》
来看一下linux kernel的定时器是如何设定的timer.h#ifndef _LINUX_TIMER_H#define _LINUX_TIMER_H/* * DON'T CHANGE THESE!! Most of them are hardcoded into some assembly language * as well as being defined here. *...原创 2020-03-22 22:42:02 · 491 阅读 · 0 评论 -
《linux内核源码分析----dma.c》
linux0.11、linux1.0、linux1.3、linux2.0、linux2.6分别是1万多行、16万行、32万行、70万行、480万行c代码。1.0带vfs和proc文件系统,内核的基本模型是没有多少变化。因此用于讲解kernel源码比较适合。kernel一级源码目录:[root@bogon linux-1.0]# lltotal 92drwxr-xr-x. 2 root...原创 2020-03-22 11:26:10 · 423 阅读 · 0 评论 -
redis 源码全解析
Redis 英文拼写: REmote DIctionary Server(Redis)Redis 是一个由Salvatore Sanfilippo写的高性能key-value存储系统。去除冗余信息,选择一个比较早期的源码进行分析,可以更清楚的看出一个源码的设计模型。从main()去分析,redis主要做了以下几件事情:redis原理:在内存层面用类型、key_len、ken、value...原创 2020-03-15 17:01:46 · 5486 阅读 · 0 评论 -
bitcoin
比特币地址算法:原创 2020-01-10 10:42:36 · 485 阅读 · 0 评论 -
C++模板全特化/偏特化
1. C++模板大家都对C++的模板编程应该都能很熟练使用了,下面就是一段很简单不过的例子了//模板函数template<typename T, class N> void func(T num1, N num2){ cout << "num1:" << num1 << ", num2:" << num2 <<...原创 2020-03-06 21:52:27 · 340 阅读 · 0 评论 -
Ipfs应用场景分析报告
ipfs 应用场景分析报告ipfs 核心组件merkle p2p种子算法kademlia网络拓扑算法p2p内网穿透技术lmdb/leveldb 数据库、git切片/融合技术fuse应用层文件系统,实现目录挂载。仅支持linux版本ipfs概述ipfs基于以及bt网络、迅雷、电驴为代表的p2p网络分发技术,结合git切片技术、加密技术、base58/Protobuf编码技术,使...原创 2019-09-11 18:15:55 · 1218 阅读 · 4 评论 -
boost::asio定时器
asioasio原本是一个独立的网络库,被boost选中后,改造为Boost库的一部分。设计原则为轻继承,重组合。符合c++的一贯风格。基类:boost::asio::io_service定时器类:boost::asio::basic_waitable_timer时钟类:std::chrono::steady_clock本文是kademlia算法的一部分,经过注释比较好理解。不准备详...原创 2019-09-09 18:42:20 · 644 阅读 · 0 评论 -
golang http文件服务器
通用的文件服务器可以用ftp、nginx等搭建。如果不想这么费事儿,可以用以下的代码简单实现一个文件服务器。此服务器是在下的一个存储项目中用到的,刚从github私有库拉取下来。使用golang编写按照我们的传统,直接上源码fileserver.go:package mainimport ( "fmt" "io" "io/ioutil" "net/http" "os" "os/...原创 2020-02-24 12:12:15 · 861 阅读 · 0 评论 -
c++ aes加密
#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <stdlib.h>#include <uni...原创 2020-02-18 19:52:21 · 591 阅读 · 0 评论 -
vmware安装centos8
前言2020年2月,阿里云到期。去续费时发现贼贵。打折后需要500大洋。1M 1G 1核cpu 40GB磁盘。看了腾讯的ECS后,发现价格都差不多。 于是决定使用暂时vmware。看了一下vmware已经发展到了15。系统选用centos8。下载centos8镜像在浏览器输入地址:https://www.centos.org/或用wget下载:wget https://...原创 2020-02-18 17:17:14 · 804 阅读 · 0 评论 -
linux 线程池设计
线程池是某个iot项目中用到的核心组件之一,基于reactor模型设计,运行在树莓派上面,是用c语言语言写的。 这个源码曾经抠出来,放在一个flamingo的群里面,群里面有人用来做电信机房的组件。 一忙起来,就忘记把这个源码写成博客,为更多的人提供技术交流。源码://thread_pool.h#ifndef THREAD_POOL_H_#define THREAD_POOL_...原创 2020-02-15 16:12:07 · 385 阅读 · 0 评论 -
Qt实现word一个基本的编辑器
wps金山软件求伯君一手编写(1年),由雷军一手推动跟微软竞争。说点历史,大家不要惊讶。一开始,微软是抄袭的wps,而非wps抄袭的微软。后来微软借助捆绑,在office和浏览器上面大获成功。wps历经磨难,终究修成正果成功上市。 wps现在用的就是Qt5开发的。 Qt编写的程序外观精美,运行速度快。wps功能强大, 非个人之力可以短期内完成,因此本文编写了一个基础功能的word编辑器。...原创 2020-01-30 22:41:34 · 3561 阅读 · 0 评论 -
c++ 二维字符矩阵,字符串查找
这个项目一个区块链合作项目方发过来的水平测试题目,题目要求是:输入去掉空格,转换为大写字母,横向、纵向、对角线,以及相反方向去匹配,是否匹配到字符串。设计方法有两种:字符比较字符串比较我们采用的是第二种方法。字符串比较是一个调用,那么认为就变成了:字符串生成横向、纵向、对角线皆可生成字符串。简单粗暴上代码:#include <iostream>#inclu...原创 2020-01-25 16:49:08 · 1698 阅读 · 3 评论 -
《第三课linux文件操作》
啥是文件?文件是存储在计算机硬盘上面的,一个数据的独立集合。内容可以被操作系统读、写。在windows下面的文件列表:在linux下面的文件列表:[root@izwz93atpalb56zydy9bpyz cloud_test]# ll /tmp/redistotal 980-rw-r--r--. 1 501 games 7063 Feb 21 2009 adlist.c-...原创 2020-01-16 17:59:59 · 243 阅读 · 0 评论 -
opencv图像处理(c++)
安装opencv库[root@izwz93atpalb56zydy9bpyz opencv]# yum install opencv opencv-devel -yLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.cloud.aliyuncs.com * cent...原创 2020-01-15 15:21:57 · 344 阅读 · 0 评论 -
Yum包管理基础教程
yum包管理器就像windows下面的360、基山毒霸一样,提供应用搜索、应用已安装列表、应用删除。只不过linux下的是命令行操作的,windows下面是有GUI作为接口。 在ubuntu和debian下面的叫apt,在centos 下面的叫yum。基本上在ubuntu下面的包和centos下面的包,都是一致的。运行时库的名字基本相同,编译时库的名字略有差别。比如:在centos下面叫:op...原创 2020-01-15 11:01:57 · 397 阅读 · 0 评论 -
gdb调试技巧
#gdb教程源文地址1.信息显示1.1显示gdb版本信息显示gdb版本信息技巧使用gdb时,如果想查看gdb版本信息,可以使用“show version”命令:(gdb) show versionGNU gdb (GDB) 7.7.1Copyright (C) 2014 Free Software Foundation, Inc.License GPLv3+: GNU GPL ...原创 2020-01-10 23:17:15 · 555 阅读 · 0 评论 -
第一课《linux入门基础》
前言本篇为《linux应用开发》系列博客的第一篇。文章目标:通过本文的学习,了解清楚linux入门的大致流程。具备方向感后,linux其实并不难学习……适合人群:电子电信相关专业、从事单片机开发,有1~2年c语言基础,期待转型linxu的朋友。文章风格:艺术源于生活而高于生活,技术也是。所以本文的行文风格,是穿插技术、幽默、哲学、文学、历史、岁月极美,用心体会必有所获。望你学会乾...原创 2019-12-27 12:15:15 · 718 阅读 · 6 评论