<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[A_cccll的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/A_cccll</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; A_cccll]]></copyright><item><title><![CDATA[GDB大全]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/130898078</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/130898078</guid><author>A_cccll</author><pubDate>Sat, 27 May 2023 10:23:26 +0800</pubDate><description><![CDATA[binutils:
ar |ld |nm |size |readelf |strings |objcopy |objdump |strip
diffutils:
cmp |diff
gdb:
gdb |gcore |gstack]]></description><category></category></item><item><title><![CDATA[linux_中断]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/120733132</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/120733132</guid><author>A_cccll</author><pubDate>Tue, 12 Oct 2021 21:59:01 +0800</pubDate><description><![CDATA[目录

思维导图


]]></description><category></category></item><item><title><![CDATA[linux signal SIG_DFL]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/120538540</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/120538540</guid><author>A_cccll</author><pubDate>Tue, 28 Sep 2021 21:58:49 +0800</pubDate><description><![CDATA[signal 默认行为


]]></description><category></category></item><item><title><![CDATA[linux 终端总结]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/120477118</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/120477118</guid><author>A_cccll</author><pubDate>Sat, 25 Sep 2021 20:49:54 +0800</pubDate><description><![CDATA[linux 终端分类



终端的作用


区分控制台与终端
其实起初终端和控制台都不是个人电脑的概念，而是多人共用的小型中型大型计算机上的概念。
• 控制台是一种特殊的人机接口, 是人控制主机的第一人机接口。而主机对于控制台的信任度高于其他终端。
• 终端为主机提供了人机接口，每个人都通过终端使用主机的资源。终端有字符终端和图形终端两种。一台主机可以连很多终端。

 对此还可以结合内核启动代码中init进程打开/dev/console和执行两次sys_dup（0），以及标准输入、标准输出、标准出错，还有就]]></description><category></category></item><item><title><![CDATA[linux 压缩&解压缩&文件归档格式]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/120423789</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/120423789</guid><author>A_cccll</author><pubDate>Wed, 22 Sep 2021 21:54:02 +0800</pubDate><description><![CDATA[linux文件归档&amp;压缩&amp;解压缩
[tar归档]
解压缩| 解包
tar -xf
不解压| 查看压缩包构成
tar -tf
压缩| 打包
tar -cf

内置压缩工具
gzip工具(tar.gz| .tgz)
使用参数-z调用
相关工具zcat,zcmp,zless,zmore,zdiff,zgrep


bzip2工具(tar.bz| tar.bz2)
使用参数-j调用
相关工具
bzcat,bzcmp,bzless,bzmore,bzdiff,bzgrep

compress工具(ta]]></description><category></category></item><item><title><![CDATA[cpp windows+vscode编译环境构建]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/120398327</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/120398327</guid><author>A_cccll</author><pubDate>Tue, 21 Sep 2021 08:21:28 +0800</pubDate><description><![CDATA[windows下搭建c++开发环境
1.依赖包准备：
1. 下载vscode &amp; 下载mingw
2. 获取依赖库路径：cmd---&gt; 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]]></description><category></category></item><item><title><![CDATA[linux 文件重定向]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/114810176</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/114810176</guid><author>A_cccll</author><pubDate>Sun, 14 Mar 2021 23:51:03 +0800</pubDate><description><![CDATA[相关扩展
nohup | 所属包：coreutils
	 	功能说明：该命令可以让用户在退出系统之后，继续于后台中执行程序。注意nohup命令不会自动将程序放到后台执行，因此需要配合shell的特殊字符'&amp;'使用，'&amp;'放在一行指令的最后，如'nohup command &amp;'

文件重定向原理
要想明白文件重定向，首先需要理解linux中的所有进程，是有3个预设文件描述符的，文件描述符映射到文件指针，文件指针指向具体文件：
fd0 |默认映射到标准输入文件指针-&gt;（/dev/s]]></description><category></category></item><item><title><![CDATA[网络 协议栈]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/110789397</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/110789397</guid><author>A_cccll</author><pubDate>Sun, 06 Dec 2020 23:35:28 +0800</pubDate><description><![CDATA[linux网络协议栈（内核协议栈）
协议分层（协议栈）
协议分为：
|_______应用层message（数据报文的格式）
|______传输层segment（解决进程接收数据&amp;决定数据传输形式| 使用端口号）
|_____网络层packet（解决数据报文的跨局域网传输| 使用IP地址）
|____链路层frame（解决局域网链路问题| 使用MAC地址）
|___物理层bit

网络数据报文封装格式为：[以太网头]+[IP头]+[TCP头]+[应用层数据报文]+[以太网尾]

典型协议：
|___应]]></description><category></category></item><item><title><![CDATA[网络-网络接口]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/110789384</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/110789384</guid><author>A_cccll</author><pubDate>Sun, 06 Dec 2020 23:34:11 +0800</pubDate><description><![CDATA[网络接口socket
内核源码 fs/net.h
struct 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_state
typedef enum {
	SS_FREE = 0,	]]></description><category></category></item><item><title><![CDATA[网络-程序框架]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/110789351</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/110789351</guid><author>A_cccll</author><pubDate>Sun, 06 Dec 2020 23:32:29 +0800</pubDate><description><![CDATA[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 多进程数据处理能力]]></description><category></category></item><item><title><![CDATA[git-操作手册]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/108570807</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/108570807</guid><author>A_cccll</author><pubDate>Mon, 14 Sep 2020 00:13:38 +0800</pubDate><description><![CDATA[管理机制
1.工作区域划分
工作区
	1.本地工作路径
暂存区
	2.位于(.git/index)文件中，所以暂存区有时也称为索引(index)
版本库	
	3.位于(.git/)目录中，含此项目的快照数据，即本地仓库
	4.位于服务器上的远程仓库

操作命令
1.创建仓库
git init [dentry]	初始化一个git仓库
git clone [url]		远程仓库---&gt;本地仓库

2.提交与修改
git add [file]		工作区---&gt;暂存区

git commit			暂存区]]></description><category></category></item><item><title><![CDATA[cpp stl容器操作]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/105240805</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/105240805</guid><author>A_cccll</author><pubDate>Wed, 01 Apr 2020 10:57:42 +0800</pubDate><description><![CDATA[底层容器常用共同操作
增加元素：iterator insert()
删除元素：iterator erase()
容器元素个数：int size()
容器是否为空：bool empty()
清空容器元素：clear()
1,2容器元素互换:1.swap(2)

序列式容器
特点：
共同操作：
 c.resize()				//重新定义容器c长度

vector
定义：vector&lt;T&gt; ...]]></description><category></category></item><item><title><![CDATA[kernel lkm设计规则]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103897329</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103897329</guid><author>A_cccll</author><pubDate>Wed, 08 Jan 2020 19:58:15 +0800</pubDate><description><![CDATA[lkm（可加载内核模块）
1.lkm编译依托于Linux内核源码

2.完全使用C语言设计规范

3.不能调用任何库文件



查看系统内核版本

uname -r 

lkm设计目标
进行内核的二次开发

1.内核的协议栈/系统调用都可以用lkm方式进行开发

2.结合内核的进程管理/文件系统/系统调用/字符驱动/内核网络等机制进行开发

lkm的makefile示例
obj-m += hell...]]></description><category></category></item><item><title><![CDATA[c-glibc库函数大全]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103888642</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103888642</guid><author>A_cccll</author><pubDate>Wed, 08 Jan 2020 11:46:26 +0800</pubDate><description><![CDATA[glibc 和 libc 都是 Linux 下的 C 函数库
libc 是 Linux 下的 ANSI C 函数库；
glibc 是 Linux 下的 GUN C 函数库;
glibc在/lib目录下的.so文件为libc.so.6
mem(按字节操作)


void *memset(void *s, int ch, size_t n);


void *memcpy(void *dest, co...]]></description><category></category></item><item><title><![CDATA[linux-系统目录结构]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103888466</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103888466</guid><author>A_cccll</author><pubDate>Wed, 08 Jan 2020 11:37:13 +0800</pubDate><description><![CDATA[Linux系统目录结构
/root    超级用户主目录

/home    所有普通用户目录

/bin    存放二进制可执行文件（常用命令在这里）

/sbin    存放root用户的二进制可执行文件（root权限使用的命令在这里）

/etc    存放系统管理和配置文件

/dev    存放设备文件（存放的是Linux的外部设备）

/media    linux系统会自动识别一些设...]]></description><category></category></item><item><title><![CDATA[编译-交叉编译]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103888291</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103888291</guid><author>A_cccll</author><pubDate>Wed, 08 Jan 2020 11:31:10 +0800</pubDate><description><![CDATA[交叉编译含义：
是指在一个平台上生成另一个平台上的可执行代码



同一个体系结构可以运行不同的操作系统，同样一个操作系统也可以在不同的体系结构上运行

例：常说的x86 Linux平台（指inter x86体系结构及Linux for x86操作系统）

    x86 WinNT平台（指inter x86体系结构及Windows NT for x86操作系统）

交叉编译的好处：
在进行嵌入式...]]></description><category></category></item><item><title><![CDATA[linux 进程命令]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103761052</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103761052</guid><author>A_cccll</author><pubDate>Mon, 30 Dec 2019 09:28:05 +0800</pubDate><description><![CDATA[查看进程
ps -aux
最常用的格式，利用管道去查找特定的进程
ps -ef
后面跟文件或者文件夹
ps -eo lstart
查看进程的启动时间
ps -eo pid,lstart,etime | grep [ pid ]
查看特定进程的启动时间、运行时间

aix系统
查看某个端口
netstat -Aan|grep 80
(会显示一个地址)
rmsock 地址 tcpcb/inpcb
(报...]]></description><category></category></item><item><title><![CDATA[git-版本管理]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103734815</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103734815</guid><author>A_cccll</author><pubDate>Fri, 27 Dec 2019 16:41:33 +0800</pubDate><description><![CDATA[git下载地址
[windows版本下载地址](https://git-scm.com/download/win)

安装教程
[安装教程](https://www.jianshu.com/p/bebba0d8038e)

使用方式
1.建立仓库
git init  
使用指定路径作为git仓库
git init newrepo
2.添加文件
git add filename
3.提交版本
git...]]></description><category></category></item><item><title><![CDATA[cpp-stl-容器对比]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103510951</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103510951</guid><author>A_cccll</author><pubDate>Thu, 12 Dec 2019 16:10:45 +0800</pubDate><description><![CDATA[STL
包含13个模板类
&lt;algorithm&gt;、&lt;deque&gt;、&lt;functional&gt;、&lt;iterator&gt;、&lt;vector&gt;、&lt;list&gt;、&lt;map&gt;、  
&lt;memory&gt;、&lt;numeric&gt;、&lt;queue&gt;、&lt;set&gt;、&lt;stack&gt;和&lt;u...]]></description><category></category></item><item><title><![CDATA[数据库-redis-命令总结]]></title><link>https://blog.youkuaiyun.com/A_cccll/article/details/103510862</link><guid>https://blog.youkuaiyun.com/A_cccll/article/details/103510862</guid><author>A_cccll</author><pubDate>Thu, 12 Dec 2019 16:08:04 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item></channel></rss>