<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Tanner_SL的博客]]></title><description><![CDATA[Talk is cheap, Show me the Code!]]></description><link>https://blog.youkuaiyun.com/Tanner_SL</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tanner_SL]]></copyright><item><title><![CDATA[Linux笔记之PATH, LD_LIBRARY_PATH和LIBRARY_PATH的区别]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/164146505</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/164146505</guid><author>Tanner_SL</author><pubDate>Fri, 28 Aug 2026 14:55:50 +0800</pubDate><description><![CDATA[查找动态链接库时指定除了系统默认路径之外的其他路径，其中LD_LIBRARY_PAH指定的路径会在系统默认路径之前进行查找。source .bashrc (Source命令也称为“点命令”，也就是一个点符号（.）。source命令通常用于重新执行刚修改的初始化文件，使之立即生效，而不必注销并重新登录)方法二：修改/.bashrc或~/.bash_profile或系统级别的/etc/profile。方法一： export PATH=“绝对路径” 但是登出后就失效。环境变量，可执行程序的查找路径。]]></description><category></category></item><item><title><![CDATA[Linux笔记之正则表达式和文本处理grep,sed,awk命令]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/164120963</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/164120963</guid><author>Tanner_SL</author><pubDate>Thu, 27 Aug 2026 16:45:55 +0800</pubDate><description><![CDATA[命令特点场景grep过滤grep命令过滤速度是最快的sed替换，修改文件内容，取行进行替换/修改文件内容 取出某个范围的内容awk取列，统计计算取列 对比，比较 >= <=!= 统计，计算(awk数组)]]></description><category></category></item><item><title><![CDATA[Linux笔记之GIT常用命令]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/164120266</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/164120266</guid><author>Tanner_SL</author><pubDate>Thu, 27 Aug 2026 16:22:57 +0800</pubDate><description><![CDATA[设置完成后就可以免密操作git pull和git push。]]></description><category></category></item><item><title><![CDATA[Linux笔记之vim操作]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/164080620</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/164080620</guid><author>Tanner_SL</author><pubDate>Wed, 26 Aug 2026 11:17:07 +0800</pubDate><description><![CDATA[*“w”命令：**移动光标跳到下一个单词词首，使用"w"命令，可以直接在命令前加数字前缀表示将命令重复多次，“3w”表示向前移动3个单词移动后光标在单词的词首。**“G"命令：**计数前缀加上”G“(shift+G)，如果没有计数前缀，”G"命令将光标移动到文件末，移动到文件首的命令是“gg”。将光标移到需要删除的一整行上，然后使用“dd”命令，即连按“d”键两次，就会删除一整行，并且后一行就会移上来填补删除的一行。**"^"和”0“命令，<Home>键：**将光标移动到当前行的行首。]]></description><category></category></item><item><title><![CDATA[Linux笔记之BASH命令行操作]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/164080449</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/164080449</guid><author>Tanner_SL</author><pubDate>Wed, 26 Aug 2026 10:38:53 +0800</pubDate><description><![CDATA[【代码】Linux笔记之BASH命令行操作。]]></description><category></category></item><item><title><![CDATA[Linux笔记之Ubuntu系统设置自动登录tty1界面]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/147051458</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/147051458</guid><author>Tanner_SL</author><pubDate>Mon, 07 Apr 2025 19:56:56 +0800</pubDate><description><![CDATA[ubuntu系统设置自动登录tty1界面]]></description><category></category></item><item><title><![CDATA[linux系统中/etc/fstab文件]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/123737886</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/123737886</guid><author>Tanner_SL</author><pubDate>Fri, 25 Mar 2022 16:03:22 +0800</pubDate><description><![CDATA[Linux系统在开机时会自动读取/etc/fstab文件中的内容，并根据文件中的内容进行配置挂载磁盘，自动的将此文件中指定的文件系统挂载到指定的目录。
#cat /etc/fstab
&lt;file system&gt;        &lt;dir&gt;         &lt;type&gt;    &lt;options&gt;             &lt;dump&gt; &lt;pass&gt;
tmpfs                  /tmp          tmpfs     ]]></description><category></category></item><item><title><![CDATA[Linux记录之dd命令进行硬盘刻录]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/122072296</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/122072296</guid><author>Tanner_SL</author><pubDate>Tue, 21 Dec 2021 20:31:04 +0800</pubDate><description><![CDATA[linux系统中使用dd命令进行硬盘的刻录]]></description><category></category></item><item><title><![CDATA[Linux_shell---使用grep，tr和cut指令提取IP地址]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/121256080</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/121256080</guid><author>Tanner_SL</author><pubDate>Wed, 10 Nov 2021 20:36:51 +0800</pubDate><description><![CDATA[首先贴上全部的Shell指令操作：
&gt;&gt;&gt;ifconfig eno2 | grep inet -w | tr -s '\ ' | cut -d ' ' -f 3

下面来进行指令的分析：
ifconfig命令显示网卡的网络参数：

这里要提取网卡eno2的ip地址
并使用grep -w指令只显示包含inet单词的这一行。

然后是tr指令
tr命令：可以用来对来自标准输入的字符进行替换、压缩和删除。
&gt;&gt;&gt;tr [选项] (字符集合)
选项说明：
1. -c或——comp]]></description><category></category></item><item><title><![CDATA[Linux_shell---获取当前脚本目录]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/121129877</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/121129877</guid><author>Tanner_SL</author><pubDate>Wed, 03 Nov 2021 20:30:19 +0800</pubDate><description><![CDATA[获取当前脚本目录
DIR="$( cd"$( dirname"${BASH_SOURCE[0]}" )" &amp;&amp; pwd )"

**${BASH_SOURCE[0]}**表示bash脚本的第一个参数，获取当前执行的shell文件所在的路径及文件名
dirname表示提取参数里的目录，去除文件名
cd表示切换到提取到的目录
pwd显示当前目录并将结果赋给DIR
获取到提取参数里目录的上一级目录：
DIR=$(cd "$( dirname ${BASH_SOURCE[0]})"; cd ..; ]]></description><category></category></item><item><title><![CDATA[/etc/profile, /etc/profile.d, ~/.bash_profile和~/.bashrc文件]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/121129730</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/121129730</guid><author>Tanner_SL</author><pubDate>Wed, 03 Nov 2021 20:25:45 +0800</pubDate><description><![CDATA[Linux系统中的/etc/profile, /etc/profile.d, ~/.bash_profile和~/.bashrc文件
/etc/profile是永久性的环境变量，设置的是全局变量，当一个用户登录linux系统或者Login shell启动时，首先要确保执行的启动脚本就是/etc/profile，在这个脚本中设置的一些重要的变量有：

PATH：预设可执行文件或命令的搜索路径
USER：用户登录时使用的用户名
LOGNAME：其值就是$USER
HOSTNAME：所使用的主机名
MAIL：存放]]></description><category></category></item><item><title><![CDATA[STM32F7xx基于HAL库的USB_CDC接收数据的函数调用]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/119257213</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/119257213</guid><author>Tanner_SL</author><pubDate>Fri, 30 Jul 2021 22:43:27 +0800</pubDate><description><![CDATA[在STM32F7xx的HAL库实现的USB通信中，里面存在着多个库文件和函数的调用，这一章节主要对USB接收数据的函数调用流程来进行分析，USB的数据发送部分相对来说比较容易分析。

在usb通信中，STM32F7xx作为从设备，当USB接收到数据时，从而产生中断；


/**
 * @File: stm32f7xx_it.c
 * @brief This function handles USB On the Go Hs global interrupt.
 */
extern PCD_HandleTyp]]></description><category></category></item><item><title><![CDATA[程序编写规范]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/103080817</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/103080817</guid><author>Tanner_SL</author><pubDate>Fri, 15 Nov 2019 10:48:21 +0800</pubDate><description><![CDATA[代码书写规则

下面一些常见的代码书写规则：

（1）尽量使用接口，然后使用类实现接口，以提高程序的灵活性。
（2）一行不要超过80个字符。
（3）尽量不要手工更改计算机生成的代码，若必须更改，一定要改成和计算机生成的代码风格 一样。
（4）关键的语句（包括声明关键的变量）必须要写注释。
（5）建议局部变量在最接近使用它的地方声明。
（6）不要使用goto系列语句，除非是用在跳出深层循环...]]></description><category></category></item><item><title><![CDATA[整理的uC/OS_II系统相关知识点]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/102552555</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/102552555</guid><author>Tanner_SL</author><pubDate>Mon, 14 Oct 2019 17:18:46 +0800</pubDate><description><![CDATA[当系统响应时间很重要时，要使用可剥夺型内核，uc/OS_II是可剥夺型的实时内核，抢占式的多任务实时内核
任务的三个重要部分

程序代码
**私有堆栈：**保存的是任务上下文的信息
**任务控制块：**保存了任务堆栈指针，任务当前状态标志，任务的优先级别

uC/OS_II的任务调度
任务调度的思想是：“近似地每时每刻总是让优先级最高的就绪任务处于运行状态”
即任务调度采用的就是最高优先级调度算法...]]></description><category></category></item><item><title><![CDATA[整理的C/C++相关的面经知识点]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/102552162</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/102552162</guid><author>Tanner_SL</author><pubDate>Mon, 14 Oct 2019 17:01:37 +0800</pubDate><description><![CDATA[自己在找工作的过程中，参考了一些博客并自己整理的有关C/C++面经知识点。
C语言中 new和malloc的区别

**申请内存所在位置：**new/delete是操作符，malloc/free是函数；new操作符从自由存储区(free store)上位对象动态分配内存空间，而malloc函数从从堆上动态分配内存。而且new在申请对象时会调用对象的构造函数和析构函数
**自由存储区是C++基于ne...]]></description><category></category></item><item><title><![CDATA[结构体作为函数参数传递]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/100032342</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/100032342</guid><author>Tanner_SL</author><pubDate>Fri, 23 Aug 2019 10:46:48 +0800</pubDate><description><![CDATA[结构变量是一个标量，它可以用于其他标量可以使用的任何场合，但把结构体作为参数传递给一个函数要注重效率

例如下面这样一个结构体：


#define PRODUCT_SIZE  20

typedef struct{
    char product[PRODUCT_SIZE];
    int quantity;
    float unit_price;
    float total_amo...]]></description><category></category></item><item><title><![CDATA[2020届校招大疆嵌入式部分笔试题]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/98725238</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/98725238</guid><author>Tanner_SL</author><pubDate>Fri, 23 Aug 2019 10:06:24 +0800</pubDate><description><![CDATA[在32位系统中有如下定义，则sizeof(data_t)的值是()


typedef struct data{
char m:3;
char n:5;
short s;
union{
int a;
char b;
};
int h;
}...]]></description><category></category></item><item><title><![CDATA[string流]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/99674201</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/99674201</guid><author>Tanner_SL</author><pubDate>Fri, 16 Aug 2019 11:16:14 +0800</pubDate><description><![CDATA[string流头文件为&lt;sstream&gt;，定义了三个类型来支持内存IO，istringstream从string读取数据，ostringstream向string写入数据，stringstream既可以从string读取数据，也可以向string写数据

计算字符串最后一个单词的长度，单词以空格隔开。


#include&lt;iostream&gt;
#include&lt;st...]]></description><category></category></item><item><title><![CDATA[优先队列的拓扑排序算法笔试题]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/99290788</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/99290788</guid><author>Tanner_SL</author><pubDate>Mon, 12 Aug 2019 10:42:04 +0800</pubDate><description><![CDATA[拼多多20届学霸批算法笔试题第三题

一共有N个执行的任务，每个任务需要Pi的时间完成执行。同时，任务之间可能会有一些依赖关系。比如任务1可能依赖任务2和任务3，那么任务1必须在任务2和任务3都执行完成后才能执行。

同时只能执行一个任务，并且在任务完成之前不能暂停切换去执行其他任务。为了提升平台用户的使用体验，希望最小化任务的平均返回时长。一个任务的返回时长定义为任务执行完成时刻减去平台接收到该...]]></description><category></category></item><item><title><![CDATA[关于笔试中的数据输入问题]]></title><link>https://blog.youkuaiyun.com/Tanner_SL/article/details/98965894</link><guid>https://blog.youkuaiyun.com/Tanner_SL/article/details/98965894</guid><author>Tanner_SL</author><pubDate>Fri, 09 Aug 2019 16:38:50 +0800</pubDate><description><![CDATA[输入数据的行数和个数已知

这种情况下的数据输入就比较简单了


int n;
cin &gt;&gt; n;
vector&lt;int&gt; data(n, 0);
for(int i = 0; i &lt; n; i ++ ) 
{
    cin &gt;&gt; data[i];
}

输入数据的行数和个数未知

每行的数据之间空格隔开，每行的数据个数不定，一直读到文件结束符为止


...]]></description><category></category></item></channel></rss>