自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GDB大全

binutils:ar |ld |nm |size |readelf |strings |objcopy |objdump |stripdiffutils:cmp |diffgdb:gdb |gcore |gstack

2023-05-27 10:23:26 111

原创 linux_中断

目录思维导图

2021-10-12 21:59:01 161 1

原创 linux signal SIG_DFL

signal 默认行为

2021-09-28 21:58:49 756

原创 linux 终端总结

linux 终端分类终端的作用区分控制台与终端其实起初终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念。• 控制台是一种特殊的人机接口, 是人控制主机的第一人机接口。而主机对于控制台的信任度高于其他终端。• 终端为主机提供了人机接口,每个人都通过终端使用主机的资源。终端有字符终端和图形终端两种。一台主机可以连很多终端。 对此还可以结合内核启动代码中init进程打开/dev/console和执行两次sys_dup(0),以及标准输入、标准输出、标准出错,还有就

2021-09-25 20:49:54 137

原创 linux 压缩&解压缩&文件归档格式

linux文件归档&压缩&解压缩[tar归档]解压缩| 解包tar -xf不解压| 查看压缩包构成tar -tf压缩| 打包tar -cf内置压缩工具gzip工具(tar.gz| .tgz)使用参数-z调用相关工具zcat,zcmp,zless,zmore,zdiff,zgrepbzip2工具(tar.bz| tar.bz2)使用参数-j调用相关工具bzcat,bzcmp,bzless,bzmore,bzdiff,bzgrepcompress工具(ta

2021-09-22 21:54:02 119

原创 cpp windows+vscode编译环境构建

windows下搭建c++开发环境1.依赖包准备:1. 下载vscode & 下载mingw2. 获取依赖库路径:cmd---> gcc -v -x c++ -E - |C++头文件 gcc -v -x c -E - |C头文件3. 安装c/c++相关扩展包:* C/C++ Extension Pack |扩展包集-省事直选* C/C++ |必装* C++ Intellisense |代码提示与高亮* CMake |工程编译* GitLens — Git su

2021-09-21 08:21:28 148

原创 linux 文件重定向

相关扩展nohup | 所属包:coreutils 功能说明:该命令可以让用户在退出系统之后,继续于后台中执行程序。注意nohup命令不会自动将程序放到后台执行,因此需要配合shell的特殊字符'&'使用,'&'放在一行指令的最后,如'nohup command &'文件重定向原理要想明白文件重定向,首先需要理解linux中的所有进程,是有3个预设文件描述符的,文件描述符映射到文件指针,文件指针指向具体文件:fd0 |默认映射到标准输入文件指针->(/dev/s

2021-03-14 23:51:03 519

原创 网络 协议栈

linux网络协议栈(内核协议栈)协议分层(协议栈)协议分为:|_______应用层message(数据报文的格式)|______传输层segment(解决进程接收数据&决定数据传输形式| 使用端口号)|_____网络层packet(解决数据报文的跨局域网传输| 使用IP地址)|____链路层frame(解决局域网链路问题| 使用MAC地址)|___物理层bit网络数据报文封装格式为:[以太网头]+[IP头]+[TCP头]+[应用层数据报文]+[以太网尾]典型协议:|___应

2020-12-06 23:35:28 702

原创 网络-网络接口

网络接口socket内核源码 fs/net.hstruct socket { socket_state state; short type; unsigned long flags; struct socket_wq *wq; struct file *file; struct sock *sk; const struct proto_ops *ops;//函数指针集合};参数1| socket_statetypedef enum { SS_FREE = 0,

2020-12-06 23:34:11 494

原创 网络-程序框架

Linux 网络程序目标网络协议:ipv4 ipv6 icmp arp ospf rip igmp mpls pppoe ptp... 1. 网络数据分析 直接分析数据包---抓包分析 2. 协议图 (静态 动态)网络服务器模型: 1. 数据通信模块 1.1 阻塞接收 1.2 非阻塞接收 1.3 IO复用接收 select poll epoll 1.4 异步接收 signal sigation 2. 数据处理模块 2.1 多进程数据处理能力

2020-12-06 23:32:29 131

原创 git-操作手册

管理机制1.工作区域划分工作区 1.本地工作路径暂存区 2.位于(.git/index)文件中,所以暂存区有时也称为索引(index)版本库 3.位于(.git/)目录中,含此项目的快照数据,即本地仓库 4.位于服务器上的远程仓库操作命令1.创建仓库git init [dentry] 初始化一个git仓库git clone [url] 远程仓库--->本地仓库2.提交与修改git add [file] 工作区--->暂存区git commit 暂存区

2020-09-14 00:13:38 103

原创 cpp stl容器操作

底层容器常用共同操作增加元素:iterator insert()删除元素:iterator erase()容器元素个数:int size()容器是否为空:bool empty()清空容器元素:clear()1,2容器元素互换:1.swap(2)序列式容器特点:共同操作: c.resize() //重新定义容器c长度vector定义:vector<T> ...

2020-04-01 10:57:42 324 1

原创 kernel lkm设计规则

lkm(可加载内核模块)1.lkm编译依托于Linux内核源码2.完全使用C语言设计规范3.不能调用任何库文件查看系统内核版本uname -r lkm设计目标进行内核的二次开发1.内核的协议栈/系统调用都可以用lkm方式进行开发2.结合内核的进程管理/文件系统/系统调用/字符驱动/内核网络等机制进行开发lkm的makefile示例obj-m += hell...

2020-01-08 19:58:15 321

原创 c-glibc库函数大全

glibc 和 libc 都是 Linux 下的 C 函数库libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库;glibc在/lib目录下的.so文件为libc.so.6mem(按字节操作)void *memset(void *s, int ch, size_t n);void *memcpy(void *dest, co...

2020-01-08 11:46:26 3081

原创 linux-系统目录结构

Linux系统目录结构/root 超级用户主目录/home 所有普通用户目录/bin 存放二进制可执行文件(常用命令在这里)/sbin 存放root用户的二进制可执行文件(root权限使用的命令在这里)/etc 存放系统管理和配置文件/dev 存放设备文件(存放的是Linux的外部设备)/media linux系统会自动识别一些设...

2020-01-08 11:37:13 358

原创 编译-交叉编译

交叉编译含义:是指在一个平台上生成另一个平台上的可执行代码同一个体系结构可以运行不同的操作系统,同样一个操作系统也可以在不同的体系结构上运行例:常说的x86 Linux平台(指inter x86体系结构及Linux for x86操作系统) x86 WinNT平台(指inter x86体系结构及Windows NT for x86操作系统)交叉编译的好处:在进行嵌入式...

2020-01-08 11:31:10 344

原创 linux 进程命令

查看进程ps -aux最常用的格式,利用管道去查找特定的进程ps -ef后面跟文件或者文件夹ps -eo lstart查看进程的启动时间ps -eo pid,lstart,etime | grep [ pid ]查看特定进程的启动时间、运行时间aix系统查看某个端口netstat -Aan|grep 80(会显示一个地址)rmsock 地址 tcpcb/inpcb(报...

2019-12-30 09:28:05 148

原创 git-版本管理

git下载地址[windows版本下载地址](https://git-scm.com/download/win)安装教程[安装教程](https://www.jianshu.com/p/bebba0d8038e)使用方式1.建立仓库git init 使用指定路径作为git仓库git init newrepo2.添加文件git add filename3.提交版本git...

2019-12-27 16:41:33 138

原创 cpp-stl-容器对比

STL包含13个模板类<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、 <memory>、<numeric>、<queue>、<set>、<stack>和<u...

2019-12-12 16:10:45 216

原创 数据库-redis-命令总结

redis特性1.基于内存的key-value数据库 2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,get 81000次 3.支持数据持久化 4.value可以是string,hash, list, set, sorted set 使用场景1. 去最新n个数据的操作2. 排行榜,取top n个数据 //最佳人气前10条3. 精确的设置过期时间4...

2019-12-12 16:08:04 131

原创 cpp-stl-容器-成员函数

mapmap的基本操作函数: C++ Maps是一种关联式容器,包含“关键字/值”对 begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空则返回true end() 返回...

2019-12-02 18:02:26 260

原创 linux coredump

coredump文件通常情况下core文件会包含程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等coredump文件的存储位置core文件的存储位置在/proc/sys/kernel/core_pattern文件里面进行描述 一般缺省值为core,表示在当前进程工作目录下创建Linux系统默认的情况不产生段错误文件可以通过下面的命令来查看系统默认段...

2019-12-02 17:11:20 291

原创 gdb调试-多进程

GDB多进程(PID)当进程不能为系统和用户做出任何贡献了,他就可以发挥最后一点余热,调用任何一个exec,让自己以新的面貌重生;或者,更普遍的情况是,如果一个进程想执行另一个程序,它就可以fork出一个新进程,然后调用任何一个exec,这样看起来就好像通过执行应用程序而产生了一个新进程一样exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容...

2019-11-21 17:12:38 430

原创 makefile-设计规则

1. makefile相关符号: 依赖开始<Tab>命令开始 # 注释符号 \ 续行号 % 任意一个* 所有 ? 匹配 […] 通配符默认文件名GNUmakefile、makefile、Makefile1.定义变量定义 VARNAME=string 使用 ${VARNAME} Shell的变量用${},不能使用$()访问变量严...

2019-11-19 15:24:54 272

原创 数据库-sql-查询语句

基本查询语句查找表 select * from tablename; 查找表中的data字段select a.data from tablename a;查找表中的data字段并且*10select a.data*10 from tablename a;查找表中的data字段并且求平均select avg(a.data) from tablename a;查找表中的d...

2019-08-22 20:21:25 284

原创 cpp-jsoncpp库-简述

json三个主要类 Value,json::value只能处理ANSI类型的字符串,如果程序使用Unicode,需要加转码函数 Reder,Json::Reader不能直接用了,会报error C4996,改为使用Json::CharReader Writer,Json::Writer 类是一个纯虚类,并不能直接使用。在此我们使用 Json::Writer 的子类:Json:...

2019-08-14 11:27:00 379

原创 linux-软件包管理-命令

软件包管理rpmRPM 包 - (Fedora, Redhat及类似系统)rpm -ivh package.rpm 安装一个rpm包rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告rpm -U package.rpm 更新一个rpm包但不改变其配置文件rpm -F package.rpm 更新一个确定已经安装的rpm包rpm -e pa...

2019-08-14 11:10:29 137

原创 linux-shell-实用命令

常用命令压缩/解压缩(tar.gz/tar.tgz)tar -zxvf filename.tar.gz -C ./tar -zcvf(压缩)删除rm -rf filename -r递归 -f强制 列出匹配进程ps -ef | grep -e所有进程 -f全格式 -r正在运行grep查找列出匹配文件ls -l | grep name查找字符串gr...

2019-08-14 10:41:53 132

原创 linux-软件包-源码安装

在安装之前查看INSTALL和README文件查看安装方法,因为不同程序包安装步骤不一样,有的程序包不需要configure,直接make后执行make install;而有的程序包不需要执行make install,只有一个二进制文件直接复制即可完成;configure、Makefile.in一般是项目管理器自动生成的,这依赖于两个开发工具:autoconf:生成configure脚本...

2019-08-14 10:24:03 283

原创 linux-IO模型

一切皆为文件vsf文件虚拟系统Linux中的文件IO管理1.标准流stdin   0x0stdout  0x1stderr  0x22.读写函数<unistd.h>是C和C++程序设计语言中提供对POSIX操作系统API的访问功能的头文件对于类 Unix 系统,unistd.h 中所定义的接口通常都...

2019-08-14 09:42:36 110

原创 windows IPC

进程CreateProcess()IPC机制文件映射文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对...

2019-08-14 09:40:53 245

原创 linux IPC

Linux部分进程(标识pid)<unistd.h><sys/types.h>资源集合:内存 文件 时间片 协处理器完全复制:复制前执行什么,复制后执行什么fork()系统调用函数fork()是创建一个新进程的唯一方式1. 一次复制一个进程2. 返回值-1,创建失败;返回值 0,进入子进程;1. 一般来说,fork()...

2019-08-14 09:34:55 120

原创 网络-程序流程

###linux固定的三个句柄stdinstdoutstderror主机如何进行域名解析—gethostbyname()etc/hosts或Windows的hostsetc/resolv.conf中查找域名服务器(DHCP可以自动分配域名服务器)DNS服务器查找IPgethostbyname()返回struct hostent 结构体TCP/...

2019-05-15 09:07:06 230

原创 gdb调试-基础(1)

#gdb调试Windows-------函数接口Linux --------系统调用##GDB插件安装进入用户目录(普通用户)cd ~安装gef插件(gdb7.7以上)wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh####其他插件git clone https...

2019-04-26 16:11:34 281

空空如也

空空如也

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

TA关注的人

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