<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tf_apologize的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tf_apologize</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tf_apologize]]></copyright><item><title><![CDATA[你真的了解switch吗？]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/104220051</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/104220051</guid><author>tf_apologize</author><pubDate>Sat, 08 Feb 2020 11:15:14 +0800</pubDate><description><![CDATA[switch分支作用域问题

我们做条件选择时，经常会用到switch语句，相信大家对于它的使用也都是得心应手。前几天有人问我switch分支中为什么使用临时变量会报错，借此就写了个简单的Demo演示了一把，有疑问的小伙伴可以参照Demo亲自测试一下，实践才是检验真理的唯一标准。以下是错误程序，小伙伴们不妨瞜一眼先，看自己平时是不是也是这样编写的，而只是碰巧平时没有在case分支中使用临时变量罢了...]]></description><category></category></item><item><title><![CDATA[Linux系统性能分析——iostat]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/104008167</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/104008167</guid><author>tf_apologize</author><pubDate>Mon, 03 Feb 2020 16:13:45 +0800</pubDate><description><![CDATA[I/O子系统的监视器——iostat
一、iostat是什么？

iostat是I/O statistics（输入/输出统计）的缩写，用来动态监视系统的磁盘操作活动。

二、iostat能做什么？

通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。

三、iostat怎么使用？
用法: iostat [ 选项 ] [ &lt;时间间隔&gt; ...]]></description><category></category></item><item><title><![CDATA[Linux系统实用工具——ldd]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/104131254</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/104131254</guid><author>tf_apologize</author><pubDate>Sat, 01 Feb 2020 11:55:59 +0800</pubDate><description><![CDATA[看你缺点啥——ldd
一、ldd是什么?

ldd(list dynamic dependencies)，列出动态库依赖关系。 ldd不是个可执行程式，而只是个shell脚本。 ldd显示可执行模块的dependency的工作原理，其实质是通过ld-linux.so（elf动态库的装载器）来实现的。ld-linux.so模块会先于executable模块程式工作，并获得控制权，因此当上述的那些环境...]]></description><category></category></item><item><title><![CDATA[free引发的cache、buffer、swap讨论]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/104042399</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/104042399</guid><author>tf_apologize</author><pubDate>Sun, 19 Jan 2020 16:34:30 +0800</pubDate><description><![CDATA[free引发的cache、buffer、swap讨论
$ free
             total       used       free     shared    buffers     cached
Mem:       8062624    7910056     152568          0       5232     964468
-/+ buffers/cache:...]]></description><category></category></item><item><title><![CDATA[Linux系统实用工具——lsof]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/104023269</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/104023269</guid><author>tf_apologize</author><pubDate>Fri, 17 Jan 2020 21:47:23 +0800</pubDate><description><![CDATA[眼里只有文件——lsof
一、lsof是什么?

lsof（list opened files），列举系统中已经被打开的文件。在 linux 系统中，一切皆文件。通过文件不仅仅可以访问常规数据，还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录，还可以查看进程监听的端口等 socket 相关的信息。

二、lsof能做什么？

查看指定端口或端口范围被哪些进程占用，查看...]]></description><category></category></item><item><title><![CDATA[Linux系统性能分析——sar]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/104007230</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/104007230</guid><author>tf_apologize</author><pubDate>Thu, 16 Jan 2020 17:07:51 +0800</pubDate><description><![CDATA[寻找系统瓶颈的利器——sar
一、sar是什么？

sar是System Activity Reporter（系统活动情况报告）的缩写。sar工具将对系统当前的状态进行取样，然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样，获得大量的取样数据；取样数据和分析的结果都可以存入文件，所需的负载很小。sar是目前Linux上最为全面的系统性能分析工具之一，可以从14个大方面对...]]></description><category></category></item><item><title><![CDATA[I/O多路复用机制（三）]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70843682</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70843682</guid><author>tf_apologize</author><pubDate>Thu, 27 Apr 2017 10:33:14 +0800</pubDate><description><![CDATA[在实际的开发中，我们经常会遇到这样的场景，我们需要接受多个端口的数据、多个终端的数据抑或是多个文件描述符对应的数据。那么，遇到这样的问题，你在程序中该怎么做呢？通常的做法，在程序中对数据交互的描述符进行轮询。那么问题来了，轮询的时间设置为多少呢？设置的太短，可以保证处理性能和速度，但是CPU的使用率太高，一旦处理的描述符数量多了起来，CPU可能就扛不住了。设置的时间太长，描述符处理的时间片太短，处]]></description><category></category></item><item><title><![CDATA[I/O多路复用机制（二）]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70842506</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70842506</guid><author>tf_apologize</author><pubDate>Thu, 27 Apr 2017 10:23:48 +0800</pubDate><description><![CDATA[在实际的开发中，我们经常会遇到这样的场景，我们需要接受多个端口的数据、多个终端的数据抑或是多个文件描述符对应的数据。那么，遇到这样的问题，你在程序中该怎么做呢？通常的做法，在程序中对数据交互的描述符进行轮询。那么问题来了，轮询的时间设置为多少呢？设置的太短，可以保证处理性能和速度，但是CPU的使用率太高，一旦处理的描述符数量多了起来，CPU可能就扛不住了。设置的时间太长，描述符处理的时间片太短，处]]></description><category></category></item><item><title><![CDATA[I/O多路复用机制（一）]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70809954</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70809954</guid><author>tf_apologize</author><pubDate>Wed, 26 Apr 2017 17:45:21 +0800</pubDate><description><![CDATA[在实际的开发中，我们经常会遇到这样的场景，我们需要接受多个端口的数据、多个终端的数据抑或是多个文件描述符对应的数据。那么，遇到这样的问题，你在程序中该怎么做呢？通常的做法，在程序中对数据交互的描述符进行轮询。那么问题来了，轮询的时间设置为多少呢？设置的太短，可以保证处理性能和速度，但是CPU的使用率太高，一旦处理的描述符数量多了起来，CPU可能就扛不住了。设置的时间太长，描述符处理的时间片太短，处]]></description><category></category></item><item><title><![CDATA[线程间同步机制（一）]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70338437</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70338437</guid><author>tf_apologize</author><pubDate>Fri, 21 Apr 2017 20:22:41 +0800</pubDate><description><![CDATA[我们在开发的过程中，经常遇到多个线程访问同一资源的情况，也就是所谓的临界资源。同一个资源对多个线程同时可见，如果均只是读访问，那没毛病，关键是实际生产中读写是一起的。那么问题来了，一个线程在写数据，另外一个线程在读数据，那么读线程读取的很可能是乱码，即使运气好不是乱码，也不是想要的数据，读取的都是脏数据（这里盗用一下数据库术语）。更糟糕的是，多个线程同时在写数据，你想象一下，那将是多么混乱，数据将]]></description><category></category></item><item><title><![CDATA[动态链接库编程笔记]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70241770</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70241770</guid><author>tf_apologize</author><pubDate>Wed, 19 Apr 2017 16:07:46 +0800</pubDate><description><![CDATA[我们平时所做的大部分开发都是二次开发，会使用卖方提供的SDK，SDK中只有接口，没有具体业务逻辑实现的代码，我们在SDK接口的基础上做开发，进而实现我们想要的功能。
       首先我们来说说静态链接库和动态链接库，静态链接库往往以lib后缀结尾，动态链接库往往以dll后缀结束，但是我们不能仅仅以后缀名作为它们二者的区别。比如动态链接库也存在lib后缀的文件，但是此时的lib文件只是保存一些函]]></description><category></category></item><item><title><![CDATA[进程间通信方式总结——消息队列]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70194480</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70194480</guid><author>tf_apologize</author><pubDate>Sun, 16 Apr 2017 11:52:25 +0800</pubDate><description><![CDATA[Linux/Unix系统IPC是各种进程间通信方式的统称，但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open
 Group（X/Open）标准化的推进呵护影响的扩大，情况虽已得到改善，但差别仍然存在。一般来说，Linux/Unix常见的进程间通信方式有：管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进]]></description><category></category></item><item><title><![CDATA[进程间通信方式总结——共享内存]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70194383</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70194383</guid><author>tf_apologize</author><pubDate>Sun, 16 Apr 2017 11:36:59 +0800</pubDate><description><![CDATA[Linux/Unix系统IPC是各种进程间通信方式的统称，但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open
 Group（X/Open）标准化的推进呵护影响的扩大，情况虽已得到改善，但差别仍然存在。一般来说，Linux/Unix常见的进程间通信方式有：管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进]]></description><category></category></item><item><title><![CDATA[进程间通信方式总结——信号量]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70173591</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70173591</guid><author>tf_apologize</author><pubDate>Fri, 14 Apr 2017 17:35:50 +0800</pubDate><description><![CDATA[Linux/Unix系统IPC是各种进程间通信方式的统称，但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open
 Group（X/Open）标准化的推进呵护影响的扩大，情况虽已得到改善，但差别仍然存在。一般来说，Linux/Unix常见的进程间通信方式有：管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进]]></description><category></category></item><item><title><![CDATA[进程间通信方式总结——管道（二）]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70159308</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70159308</guid><author>tf_apologize</author><pubDate>Thu, 13 Apr 2017 16:38:57 +0800</pubDate><description><![CDATA[Linux/Unix系统IPC是各种进程间通信方式的统称，但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open
 Group（X/Open）标准化的推进呵护影响的扩大，情况虽已得到改善，但差别仍然存在。一般来说，Linux/Unix常见的进程间通信方式有：管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进]]></description><category></category></item><item><title><![CDATA[进程间通信方式总结——管道（一）]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/70158772</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/70158772</guid><author>tf_apologize</author><pubDate>Thu, 13 Apr 2017 16:28:47 +0800</pubDate><description><![CDATA[Linux/Unix系统IPC是各种进程间通信方式的统称，但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open
 Group（X/Open）标准化的推进呵护影响的扩大，情况虽已得到改善，但差别仍然存在。一般来说，Linux/Unix常见的进程间通信方式有：管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进]]></description><category></category></item><item><title><![CDATA[Linux系统启动流程]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/61199478</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/61199478</guid><author>tf_apologize</author><pubDate>Fri, 10 Mar 2017 16:51:20 +0800</pubDate><description><![CDATA[了解Linux系统的启动流程，能够让我们更加深入的去理解操作系统。今天博主就关于Linux系统启动流程做一个简单的总结，希望对小伙伴们有一点启发。其实，前面的几步对于其他操作系统也是通用的，只是不同系统之间在这几步上稍微有那么一点点区别罢了。
第一步－－加载BIOS
       当你打开计算机电源，计算机会首先加载BIOS信息，BIOS信息是如此的重要，以至于计算机必须在最开始就找到它。这是]]></description><category></category></item><item><title><![CDATA[diff和patch使用总结]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/60774106</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/60774106</guid><author>tf_apologize</author><pubDate>Tue, 07 Mar 2017 18:29:33 +0800</pubDate><description><![CDATA[diff是Linux系统的一个很重要的工具程序，我们通常用diff对同一软件（或程序）的不同版本的文件进行对比查看。不过，你不要用diff去比较两个完全不相干的文件，因为那样是比不出结果来的。最后提醒一下，diff是以“行”为单位比较的哦。diff和patch是一对工具，在数学上来说，diff是对两个集合的差运算，patch是对两个集合的和运算。diff比较两个文件或文件集合的差异，并记录下来，生]]></description><category></category></item><item><title><![CDATA[Vim使用总结]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/60467538</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/60467538</guid><author>tf_apologize</author><pubDate>Sun, 05 Mar 2017 15:20:19 +0800</pubDate><description><![CDATA[vim是高级版的vi，vim不但可以用不同的颜色显示文字内容，还能够进行诸如shell脚本，C等程序编辑功能，你可以将vim视为一种程序编辑器。在vi里面，【tab】和【space】所得到的结果是不一样的。




移动光标




h或向左箭头键


光标向左移动一个字符




j或向下箭头键


光标向下移动一行




k或向上箭头键]]></description><category></category></item><item><title><![CDATA[解决win10升级后无法打开VC问题]]></title><link>https://blog.youkuaiyun.com/tf_apologize/article/details/60140011</link><guid>https://blog.youkuaiyun.com/tf_apologize/article/details/60140011</guid><author>tf_apologize</author><pubDate>Fri, 03 Mar 2017 14:52:59 +0800</pubDate><description><![CDATA[最近有不少小伙伴问到：“为什么win10自动升级后，我之前安装的VC怎么打不开了，一直报‘应用程序无法正常启动（0xc0000142）之类的错误’”。有的小伙伴把之前安装过的VC卸载后重装，然而重装后并没有解决问题，VC仍然打不开，还是报上面的错误。博主亲自尝试的一翻，并将报错的截图献给大家（有图有真相），对于有过经历的小伙伴一定很熟悉吧。



       
好了，咱们就直接进入主题]]></description><category></category></item></channel></rss>