自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CC++查漏补缺

培养个人才能,无可替代,确定个人职业目标,专业技术性人才,自主学速度习,提升专业能力,打字速度是基本功,多加练习,实现盲打,提高准确度,速度,练习时间,3个月,每天1小时,专业书籍阅读,不要期待别人一句句教你都很忙,没时间搭理你。解决年龄焦虑,最好的办法是行动,明确目标,脚踏实地。 完善个人知识体系,及时归纳总结,查看招聘需求,明确欠缺的知识,自己补短板,充分利用网络资源...

2018-05-05 17:49:53 887

原创 Coredump 分析基础

缺省值是 60s,2.2 内核通常是 180s,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的 WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN-WAIT-2 的危险性比 FIN-WAIT-1 要小,因为它最多只能吃掉 1.5k 内存,但是它们的生存期长些。​ 启用有选择的应答(1表示启用),通过有选择地应答乱序接收到的报文来提高性能,让发送者只发送丢失的报文段,(对于广域网通信来说)这个选项应该启用,但是会增加对CPU的占用。​ 该参数用于设置时间戳,可以避免序列号的卷绕。

2024-01-09 14:44:56 463

原创 linux MTU 分析

mtu 分析

2024-01-04 15:35:25 562

原创 Wirehsark 使用之一

在window 下通过指令进行抓包。指定网卡、指定大小、指定文件路径。

2023-12-30 16:48:32 351

原创 写数据刷新的实现

fflush是libc.a中提供的方法,是用来将流中未写的数据传送到内核。对于提供事务支持的数据库,在事务提交时,都要确保事务日志(包含该事务所有的修改操作以及一个提交记录)完全写到硬盘上,才。fflush:是把C库中的缓冲调用write函数写到磁盘[其实是写到内核的缓冲区]。fsync, 将缓冲区的数据写到文件中.(有一个参数 int fd)c库缓冲—–fflush———〉内核缓冲——–fsync—–〉磁盘。fsync是同步打开的一个文件到缓冲区数据到磁盘上.sync,是同步整个系统的磁盘数据的.

2023-12-27 11:21:21 362

原创 dlopen 打开失败

3、找不到标识符号,可以将错误信息打印出来,使用nm -u test.so可以找出来没有定义的符号。2、确认目标文件是否是动态库(用ldd 文件名, 若不能查到文件信息,说明不是动态库文件)1、确认路径是否正确。1、修改到正确的路径。3、增加符号的定义。

2023-12-12 14:22:05 824

原创 C # 基础知识汇总

C# 基础知识

2023-10-31 11:03:25 162

原创 线程同步之共享内存

共享内存实现线程同步

2022-12-22 17:56:41 1503 1

原创 linux 下gdb 调试

编译加上参数 -g查看源码查看参数gdb可支持的变量显示格式有:x:按16进制格式显示变量d:按10进制格式显示变量u:按16进制格式显示无符号整型o:按8进制格式显示变量t:按2进制格式显示变量c:按字符格式显示变量f:按浮点数格式显示变量查看一个二级指针的数据先查看变量地址查看二级指针保存数据地址:二级指针存放的数据地址:0x406680查看该地保存的字符数据或者直接 x /31s *0x7fffffffcac0 查看查看内存值。

2022-11-08 16:39:49 1046

原创 valgrind 工具使用

使用Valgrind进行内存泄漏检测以及性能分析、检测线程错误的软件开发工具。

2022-11-08 16:34:25 422

原创 linux 下代码检查工具部署使用

代码检查工具 sonarlint splint

2022-11-08 16:18:29 468

原创 获取主机基本信息

获取本机信息

2022-10-17 16:22:42 294

原创 获取U盘信息

U 盘信息获取

2022-09-29 13:54:02 694 1

原创 socket通断检查

socket 网络连接状态检查

2022-09-27 14:33:27 225

原创 LetCode 字符串匹配

找出字符串中第一个匹配项的下标

2022-09-19 09:53:08 131

原创 trace-bpfcc

Bpfcc-trace 帮助

2022-09-10 01:06:09 368

原创 D-bus学习笔记一 基础知识篇

D-Bus是GNOME和KDE环境中广泛使用的进程间通信的软件,D-Bus允许用户做方法调用或者捕获从别的程序发送的信号,从而达到进程通信的目的。Dbus 使用指南1. dbus 是什么?d-bus 是类unix 操作系统IPC 机制可用于系统通知,桌面交互操作低开销:使用二进制协议,需要类似XML文本格式转换易使用:使用 message 来通讯,开发者可利用d-bus动态库使用d-bus已有的object/type 系统开发1.2dbus 类型system bus系统更新通知

2022-02-16 14:52:25 2290

原创 golang常见问题解决

整理汇总golang 学习中常见的问题问题: go test进行单元测试时,出现undefined方法或者command-line-arguments [build failed原因:解决方案:go test进行单元测试时,出现undefined方法或者command-line-arguments [build failed]解决方案...

2022-02-10 10:04:52 535

转载 go 线程池实现

package mainimport ( "errors" "fmt" "sync" "sync/atomic" "time")// 定义任务type Task struct { Handler func(v ...interface{}) //可变参数 ,处理可变参数 Params []interface{} // 定义空接口}// 任务池的定义type Pool struct { capacity uint64 runningWork

2022-02-09 17:45:04 713

原创 go for range 遍历

range expression1st Valuearray[n]E,*[n]Eindexintslice []Eindexintstring abcd inde xintrune intmapmap[k]vkeykchannelelement

2022-02-09 13:46:43 392

原创 go 占位符作用

go中占位符号在代码中作用range类似迭代器,可以遍历数组,字符串,map等等,对象的不同,返回的结果也不同。range会复制对象,而不是不是直接在原对象上操作。关键字 range 会返回两个值,第一个值是当前迭代到的索引位置,第二个值是该位置对应元素值的一份副本,如下图所示。package mainimport "fmt"func main() { // 这里我们使用range来计算一个切片的所有元素和 // 这种方法对数组也适用 nums := []int{2, 3, 4

2022-02-09 11:53:07 275

原创 go指针进行数据交换

package mainimport "fmt"func swap(a, b *int) { t := *a *a = *b *b = t}func swap2(a *int, b *int) { t := *a *a = *b *b = t}func main() { x, y := 10, 20 swap(&x, &y) fmt.Println(x, y) u, v := 101, 202 swap2(&u, &v)

2022-02-09 10:16:16 353

原创 Go 并发编程

go 并发实现go 多线程如何实现同步实现格式:go 函数名(参数列表)函数名: 要调用的函数名参数列表:调用函数需要传入的参数使用go 关键字创建goroutine时,被调用函数的返回值会被忽略,如果需要在goroutine中返回数据,使用channel进行返回。package mainimport ( "fmt" "time")func goroutine1() { fmt.Println("Hello goroutine")}func main() { go

2022-02-08 16:54:55 96

原创 go reflect 学习笔记

go reflect 用例

2022-02-08 15:27:15 440

原创 go 并发

go 并发的实现,以及多线程的同步go 语言具有天生的并发优势,很方便实现并发。1.go怎么实现多线程那?2.go 多线程的同步怎么实现3.go 如何避免死锁问题一案例问题二案例问题三案例

2022-02-08 14:24:14 369

原创 go interface 使用案例

go interface 接口实现案例

2022-02-08 11:53:11 438

原创 go dbus 使用

godbus 学习资料 比较全面go dbus 应用

2022-01-23 10:19:46 863

原创 使用go mod 进行包管理

go range make 功能* Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。* make 的作用是初始化内置的数据结构,也就是我们在前面提到的切片、哈希表和 Channel2;* new 的作用是根据传入的类型分配一片内存空间并返回指向这片内存空间的指针3;使用go mod 进行包管理命令作用

2022-01-23 10:19:15 718

原创 go Slice 的用法

切片的实现(类似数组)map 的实现声明方式:var map1 map[keytype]valuetypevar map1 map[string]int([keytype] 和 valuetype 之间允许有空格,但是 gofmt 移除了空格)在声明的时候不需要知道 map 的长度,map 是可以动态增长的。未初始化的 map 的值是 nil。key 可以是任意可以用 == 或者 != 操作符比较的类型,比如 string、int、float。所以数组、切片和结构体不能作为 key (译

2022-01-23 10:18:21 177

原创 go匿名函数

匿名函数和闭包关系我们不希望给函数起名字的时候,可以使用匿名函数,匿名函数同样称为闭包.package mainimport "fmt"func main() { f()}func f() { for i := 0; i < 4; i++ { g := func(i int) { fmt.Printf("%d ", i) } g(i) fmt.Printf(" - g is of type %T and has value %v\n", g, g) }}

2022-01-23 10:16:21 188

原创 golang 中channel (管道)的使用

go 管道的使用什么是管道管道(Channel)是Go语言中比较重要的部分,经常在Go中的并发中使用,channle 本质就是一个数据结构-队列数据是先进先出【FIFO : first in first out】线程安全,多 goroutine 访问时,不需要加锁,就是说 channel 本身就是线程安全的channel 有类型的,一个 string 的 channel 只能存放 string 类型数据。类似 unix 使用的pipe()管道的定义var chanName chan E

2022-01-23 09:43:09 972 2

原创 golang 开发环境部署

首先下载go 开发的sdk ,进行安装安装完以后,特别需要注意需要设置环境变量go version需要根据实际安装情况设置系统环境变量:window 安装go sdk 过程window环境设置go 环境变量

2022-01-22 21:25:44 277

原创 kernel Makefile srctree变量的含义

# Use make M=dir to specify directory of external module to build# Old syntax make ... SUBDIRS=$PWD is still supported# Setting the environment variable KBUILD_EXTMOD take precedenceifdef SUBDIRS KBUILD_EXTMOD ?= $(SUBDIRS)endififeq ("$(origin M)",.

2021-09-09 17:27:44 2156

原创 linux 环境安装golang开发环境

$ wget https://studygolang.com/dl/golang/go1.13.6.linux-amd64.tar.gz$ tar -zxvf go1.13.6.linux-amd64.tar.gz$ sudo mv go /usr/local/使用编辑器例如vim /etc/profile 命令打开 profile 文件,并将下面的环境变量添加到文件末尾。添加完成后使用:wq 命令保存并退出。export GOROOT=/usr/local/goexport PA...

2021-06-29 18:55:54 651

原创 feof判断文件结尾,最后一行重复读,问题分析和处理方案

#include<string.h>#include<stdio.h>int main(){ char buf[10]; FILE *fp = NULL; if((fp=fopen("./1.txt","r"))==NULL) { printf("open file failed \n"); } while(!feof(fp)) { fgets(buf,10,fp); printf("buf = %s", buf); }}..

2020-11-28 20:08:58 992

原创 客户端与服务器通信乱码问题处理

问题背景:之前服务器端和客户端使用的GB2312 编码,项目需要服务器和客户端都需要切换到utf-8编码客户端使用C、C++ 利用qt 开发, 服务器使用java开发

2020-08-08 19:22:18 229

原创 编译安卓so库

Android jni里面编写C++代码的时候,我就写了个goto语句,特么也提示下面的错误error: jump to label ‘XXXX’ [-fpermissive]2、原因:使用goto的后面语句,有一些初始化变量,如果跳转之后还有变量声明的话,它认为后面定义的变量在跳转label定义时尚未初始化,故而编不过去3、解决办法:我们应该在goto之前把需要的变量先初始化,而不是在goto之后还有初始化变量。4、总结:goto语句之前,先把所有需要的初始化变量写完,不要到goto语...

2020-05-30 20:32:14 437

原创 编译linux so库项目总结

1、需求实现安卓端soku代码自己实现1、遇到的问题符号链接不进去nm so提示UC/C++混合编程引起的问题3、ubuntu 系统刷新 问题 https://blog.csdn.net/liupei815/article/details/803490914、文件操作读写接口5、...

2020-05-30 20:29:20 139

原创 多线程编程实现,常见问题处理

1、linux下多线程通信方式2、多线程常见问题处理

2020-04-10 10:18:19 208 1

原创 linux 内核源码学习

1、获取内核4.X源码链接:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/在linux kernel 网站可以获取各个版本的内核,链接只是4.x的版本2、你对比一个Linux4.15和4.18内核,看一下加密的变化:1、Documentation\filesystems\porting2、fs\ecryptfs...

2020-04-01 21:01:54 160

selinux 学习笔记,帮助学习seLinux 使用

selinux 学习笔记

2022-11-08

数据结构和算法实现,实现链表,数组,二叉树等

数据结构和算法实现

2022-11-08

socket编程,实现基本的socket 通信流程

socket 编程

2022-11-08

Plantuml 语言参考指南(中文版本)

Plantuml 语言参考指南

2022-11-01

空空如也

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

TA关注的人

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