<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[magiclyj的博客]]></title><description><![CDATA[将自己学习历程记录下来，在将来始终回忆，同时可能也会帮到一些读者解决和我遇到相同的问题]]></description><link>https://blog.youkuaiyun.com/magiclyj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; magiclyj]]></copyright><item><title><![CDATA[Linux man手册]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/118383179</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/118383179</guid><author>magiclyj</author><pubDate>Thu, 01 Jul 2021 11:41:05 +0800</pubDate><description><![CDATA[MAN(1) 手册分页显示工具 MAN(1)
NAME
   man - 在线参考手册的接口

概述
man  [-C  文件]  [-d]  [-D]  [–warnings[=警告]]  [-R  警告]  [-L  区域]  [-m  系统[,…]]  [-M  路径]  [-S  列表]  [-e  扩展]  [-i|-I]  [–regex|–wildcard] [–names-only] [-a] [-u] [–no-subpages] [-P 分页程序] [-r 提示] [-7] [-E 编码]]></description><category></category></item><item><title><![CDATA[C++关键字]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/118269825</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/118269825</guid><author>magiclyj</author><pubDate>Sun, 27 Jun 2021 12:28:04 +0800</pubDate><description><![CDATA[1、const
2、mutable
3、 volatile

]]></description><category></category></item><item><title><![CDATA[Template简介]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/109966369</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/109966369</guid><author>magiclyj</author><pubDate>Sun, 22 Nov 2020 22:23:32 +0800</pubDate><description><![CDATA[今天再看stl的时候看到了模板的使用，就在csdn上看了下template，找到这片讲解比较详细的就转载一下，供日后学习查看。
1、Template/Typename/Class introduction
在c++Template中很多地方都用到了typename与class这两个关键字，而且好像可以替换，是不是这两个关键字完全一样呢?
答：class用于定义类，在模板引入c++后，最初定义模板的方法为：template，这里class关键字表明T是一个类型，后来为了避免class在这两个地方的使用可能给人]]></description><category></category></item><item><title><![CDATA[宏(macro)定义的简介]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/109744044</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/109744044</guid><author>magiclyj</author><pubDate>Sun, 22 Nov 2020 01:56:52 +0800</pubDate><description><![CDATA[经常在项目中会遇到宏定义这个东西，最近也因为项目需要要用宏来隔开一些function的使用以及区分一些setting，宏定义呢实用#开头的，说起这个东西大家第一印象应该就是preprocessing了吧，下面会通过一些例子我们一起了解一下宏。
不过呢先说一下我对宏定义的理解，宏定义就想象成为本替换，想了解清楚就文本替换还原回去就能明白了。	
下面我们就开始进入主题，来进一步了解一下宏：
1.  宏简单实用演示：
1.1宏的简单使用说明

#define square(x) x*x
/*
*下面我们就来用一下]]></description><category></category></item><item><title><![CDATA[恢复 git reset --hard tag_name/commit/HEAD的误操作]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/81475601</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/81475601</guid><author>magiclyj</author><pubDate>Tue, 07 Aug 2018 10:15:54 +0800</pubDate><description><![CDATA[最近一直在不断地使用git工具下code以及build code，在这过程中要不断的切branch和track远程branch以及切对应的tag，而在这这过程中我们会用到：git reset --hard tag_name来对版本进行切换，如果我们对reset前的那一版未保存或者push，我们误操作了该命令，在很多资料里说的都是–hard很危险有的说是不可逆操作，但是昨天我遇到这样的问题在导师的指...]]></description><category></category></item><item><title><![CDATA[repo介绍]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/81352167</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/81352167</guid><author>magiclyj</author><pubDate>Thu, 02 Aug 2018 09:08:02 +0800</pubDate><description><![CDATA[阅读本文之前，需要对git有一定的了解。

1. 概要

repo是Android为了方便管理多个git库而开发的Python脚本。repo的出现，并非为了取代git，而是为了让Android开发者更为有效的利用git。

Android源码包含数百个git库，仅仅是下载这么多git库就是一项繁重的任务，所以在下载源码时，Android就引入了repo。 Android官方推荐下载repo的方法是...]]></description><category></category></item><item><title><![CDATA[宏定义中的 #、##和__VA_ARGS__]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/81233097</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/81233097</guid><author>magiclyj</author><pubDate>Fri, 27 Jul 2018 10:37:47 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/zhujudah/admin/EditPosts.aspx?opt=1

1.# 
假如希望在字符串中包含宏参数，ANSI C允许这样作，在类函数宏的替换部分，#符号用作一个预处理运算符，它可以把语言符号转化程字符串。例如，如果x是一个宏参量，那么#x可以把参数名转化成相应的字符串。该过程称为字符串化（stringizing）. 
 #incld...]]></description><category></category></item><item><title><![CDATA[vim利器—>cscope]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/79660259</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/79660259</guid><author>magiclyj</author><pubDate>Fri, 23 Mar 2018 08:43:39 +0800</pubDate><description><![CDATA[最近在大神的指引下，我从网上学会了一个很好用的工具cscope，在这里我们来说说vim的使用利器——》cscope插件，这个插件可以在我们使用vim看项目或者编译的时候便利很多，如我们在看项目的时候想看看某个函数在哪里定义的或者在哪里被调用过以及某函数都调用了那些函数等，这些功能cscope都可以实现。下面我们来看看怎么去安装cscope和使用cscope吧： 
1、安装cscope： 
1）如果...]]></description><category></category></item><item><title><![CDATA[自动补全插件ctags]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/79636395</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/79636395</guid><author>magiclyj</author><pubDate>Wed, 21 Mar 2018 10:38:30 +0800</pubDate><description><![CDATA[这里我们来简单了解一下vim在编程中的自动补全插件–ctags的安装和使用。

安装

1、ubuntu： 
直接在命令行输入：sudo apt-get install ctags(前提是配置好网络源) 
2、redhat：下载ctags安装包，解压安装



使用：

进入到一个程序的目录，#：ctags -R //这样就可以扫描整个目录的文件中的关键字，同时会输出个tags文件。 
将tags...]]></description><category></category></item><item><title><![CDATA[VMWare虚拟机上安装的Linux仅与宿主机之间的互通]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/79281144</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/79281144</guid><author>magiclyj</author><pubDate>Wed, 07 Feb 2018 16:02:01 +0800</pubDate><description><![CDATA[最近一直很困惑虚拟机上的Redhat和宿主Windows7之间有时候在WiFi下可以互通有时候无法互通，导致用putty连接虚拟机同时使用两个系统很麻烦，在网上查了很多资料和自己亲自测试成功，现将过程记录下来： 
虚拟机的网络模式有以下几种： 
1、桥接模式（B）：直接连接物理网络 
2、NAT模式（N）：用于共享主机的IP地址 
3、仅主机模式（H）：与主机共享的专用网络 
其他自定义或者LAN]]></description><category></category></item><item><title><![CDATA[linux 下vim的多文件操作]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/79228906</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/79228906</guid><author>magiclyj</author><pubDate>Thu, 01 Feb 2018 15:14:35 +0800</pubDate><description><![CDATA[vim下如何同时打开多个文件，而且多个文件间切换操作，在网上搜集一些材料，自己整理了一下，下面我们来看看这些操作：

一、打开多个文件： 
1、vim还没启动时： 
 #：vim file1 file2 file3…filen  /或者使用/    //直接在命令行中输入 
  
 打开后会显示在第一个文件页面上 
vim * //打开当前目录下所有文件 
2、vim已经启动打开其他文件： 
：o]]></description><category></category></item><item><title><![CDATA[快速排序和归并排序算法]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/78038768</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/78038768</guid><author>magiclyj</author><pubDate>Wed, 20 Sep 2017 11:21:57 +0800</pubDate><description><![CDATA[快速排序： 
https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/369842?fr=aladdin&fromid=2084344&fromtitle=%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F

#include
using namespace std]]></description><category></category></item><item><title><![CDATA[I/O复用select、poll、epoll之pk]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/78027058</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/78027058</guid><author>magiclyj</author><pubDate>Tue, 19 Sep 2017 10:23:34 +0800</pubDate><description><![CDATA[一、select、poll、epoll简介：epoll跟select都能提供多路I/O复用的解决方案。在现在的Linux内核里有都能够支持，其中epoll是Linux所特有，而select则应该是POSIX所规定，一般操作系统均有实现 
select： 
    select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是：1、 单个进程可监视的fd数量被限制，即]]></description><category></category></item><item><title><![CDATA[shell中的循环语句]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77923588</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77923588</guid><author>magiclyj</author><pubDate>Tue, 12 Sep 2017 22:10:24 +0800</pubDate><description><![CDATA[在我们平时使用C/C++编程中循环无疑是for和while，二者结束的标志是break，continue是二者结束本轮函数进入下一论循环的开关，但是在shell里除了for和while还有一个until，情况分析有case语句，但是和C/C++中完全不一样，在代码中有详细的标注：  1 #!/bin/bash]]></description><category></category></item><item><title><![CDATA[shell if语句和test命令]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77923274</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77923274</guid><author>magiclyj</author><pubDate>Sun, 10 Sep 2017 17:28:09 +0800</pubDate><description><![CDATA[在shell中if条件判断语句和我们的C、C++、Java等语言是不同的，shell的if语句条件必须用[ ]括起来，另外[ ]里外都需要用空格与周围隔开(例如[ a==b ])，否则报错；另外与if配对的有else if和else，如果我们要写这两个必须后面跟有东西，否则也会报错，在编程中不跟是可以的：

if(a==b)
printf(&quot;a=b&quot;);
else
{
//什么都没有
}

但是s...]]></description><category></category></item><item><title><![CDATA[shell 文件包含]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77921336</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77921336</guid><author>magiclyj</author><pubDate>Sun, 10 Sep 2017 12:04:29 +0800</pubDate><description><![CDATA[在shell编程里文件相互是可以包含的，在一个文件里访问另外一个文件，具体操作如下： 
 
访问另外一个脚本时需要在两种格式中选一个格式来操作，被包含的文件不需要可执行权限。 
运行file.sh脚本，会输出file1.sh的内容：]]></description><category></category></item><item><title><![CDATA[shell 函数]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77920829</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77920829</guid><author>magiclyj</author><pubDate>Sun, 10 Sep 2017 10:56:43 +0800</pubDate><description><![CDATA[shell 脚本中的函数使用格式和我们的C/C++不同，它的定义有两种，一种加function，一种不加；要运行函数只需要在shell函数后面加上函数名即可，参数传递紧跟这函数名，取参数和给shell脚本取参数一样，下面我们来看看shell下面的函数使用： 
执行结果： 
 
通过echo  $?命令可以查看函数返回值，如果函数有返回值则echo $?显示的是函数的具体返回值，否则如果函数执行成功返]]></description><category></category></item><item><title><![CDATA[shell输入／输出重定向]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77715705</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77715705</guid><author>magiclyj</author><pubDate>Wed, 30 Aug 2017 15:37:00 +0800</pubDate><description><![CDATA[在shell里也和我们程序中一样：０代表标准输入(stdin)，使用<和<<，/dev/stdin->/proc/self/fd/0 0代表：/dev/stdin; 
１代表标准输出(stdout)，使用>和>>，／dev/stdout->/proc/self/fd/1 1代表：/dev/stdout; 
2代表标准错误输出(stderr): /dev/stderr->/proc/self/fd/2]]></description><category></category></item><item><title><![CDATA[C++继承之钻石继承和虚继承]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77367863</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77367863</guid><author>magiclyj</author><pubDate>Tue, 29 Aug 2017 12:34:19 +0800</pubDate><description><![CDATA[C++中继承在之前博客里分享过，主要说的是连个特殊的继承：钻石继承和虚继承两个身份证号显然是不合理的。可以把class Person这个共同基类设置为虚基类，这样从不同路径继承来的同名数据成员在内存中就只有一个拷贝，同名函数也只有一种映射。 。1、钻石继承：1）首先我们先看一个简单的继承：   1 #include &amp;lt;iostream&amp;gt;]]></description><category></category></item><item><title><![CDATA[Linux系统SVN工具搭建]]></title><link>https://blog.youkuaiyun.com/magiclyj/article/details/77532915</link><guid>https://blog.youkuaiyun.com/magiclyj/article/details/77532915</guid><author>magiclyj</author><pubDate>Mon, 28 Aug 2017 10:02:31 +0800</pubDate><description><![CDATA[SVN(subversion)使我们在Windows和Linux下上传和下载文件的一个工具，同事也能实现对文件的管理，也是对项目管理的一个工具。小型文件的上传下载比较方便的，这里也主要说说SVN在Redhat和ubuntu平台的安装和搭建：安装：1、Redhat 安装svn：yum install -y subversion //可以解决依赖问题
2、ubuntu 安装svn:sudo apt-ge]]></description><category></category></item></channel></rss>