<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[河西无名式]]></title><description><![CDATA[月影星痕]]></description><link>https://blog.youkuaiyun.com/trochiluses</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; trochiluses]]></copyright><item><title><![CDATA[栈破坏下crash的分析方法]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/87164475</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/87164475</guid><author>trochiluses</author><pubDate>Wed, 13 Feb 2019 10:30:57 +0800</pubDate><description><![CDATA[在众多的coredump中，有一类crash调试起来是最麻烦的，那就是“栈被破坏”导致的函数调用回溯结构破坏引发的coredump。本文，主要讲讲这一类crash的成因、原理以及调试方法。

1. SMTC(show me the code)
首先，让我们来看一段代码
#include &amp;amp;lt;stdio.h&amp;amp;gt;
#include &amp;amp;lt;string.h&amp;amp;gt;
void fun(int n...]]></description><category></category></item><item><title><![CDATA[从汇编视角看函数调用]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/76643642</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/76643642</guid><author>trochiluses</author><pubDate>Thu, 03 Aug 2017 18:49:20 +0800</pubDate><description><![CDATA[C语言函数如下int bar(int c, int d)
{
    int e = c + d;
    return e;
}
int foo(int a, int b)
{
    return bar(a, b);
}
int main(void)
{
    foo(2, 5);
    return 0;
}让我们从汇编的角度跟踪函数的执行,main对应的汇编函数如下:Dump of a]]></description><category></category></item><item><title><![CDATA[laravel 简介]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/52268699</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/52268699</guid><author>trochiluses</author><pubDate>Sun, 21 Aug 2016 18:36:56 +0800</pubDate><description><![CDATA[Laravel是一款基于MVC设计模式的PHP框架，提供了一系列便捷的API接口，包括数据库、路由、表单验证等等，使PHP开发更为快速和优雅，一言以蔽：Laravel为WEB艺术家而生！1.安装先保证你已经安装好了PHP，接下来，你可以直接参考官网的安装教程进行安装。如果遇到网络问题，上述安装教程无法成功安装，你也可以先下载PHP包管理工具composer.phar，用PHP命令行运行安装：php]]></description><category></category></item><item><title><![CDATA[crond 简介[转]]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/52238725</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/52238725</guid><author>trochiluses</author><pubDate>Thu, 18 Aug 2016 10:52:24 +0800</pubDate><description><![CDATA[0.cron简介工具是一个以系统服务的形式存在。通过/etc/rc.d/init.d 或者 /etc/init.d目录下的启动脚本crond来启动。 也可能直接通过 service crond start 命令来启动。cron 会从如下这些地方读取安装的任务： 
1>. /etc/anacrontab 
这个文件存着系统级的任务。它主要用来运行每日的(daily)，每周的(weekly),每月的(m]]></description><category></category></item><item><title><![CDATA[automake 使用指南]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/49465147</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/49465147</guid><author>trochiluses</author><pubDate>Wed, 28 Oct 2015 10:12:21 +0800</pubDate><description><![CDATA[在构建大型的C/C++项目时，往往需要借助Makefile.  然而手动编写makefile是相当复杂的，这一点在程序需要跨平台的时候表现地更为明显。在此背景下，我们需要借助于一些自动化的工具来生成Makefile和configure。本文主要介绍autoconf, automake等自动化工具，默认读者已经具备linux shell脚本和makefile的基础知识。1. 工具准备autoconf，]]></description><category></category></item><item><title><![CDATA[linux svn命令使用简介]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/48522087</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/48522087</guid><author>trochiluses</author><pubDate>Thu, 17 Sep 2015 15:06:51 +0800</pubDate><description><![CDATA[1. svn st –helpstatus (stat, st): 显示工作副本中目录与文件的状态。
  用法: status [PATH…] 
    未指定参数时，只显示本地修改的条目(没有网络访问)。 
    使用 -q 时，只显示本地修改条目的摘要信息。 
    使用 -u 时，增加工作版本和服务器上版本过期信息。 
    使用 -v 时，显示每个条目的完整版本信息。 
  问号表示不]]></description><category></category></item><item><title><![CDATA[gcc指定头文件及动态链接库路径]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/48491539</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/48491539</guid><author>trochiluses</author><pubDate>Wed, 16 Sep 2015 11:27:04 +0800</pubDate><description><![CDATA[在利用源代码进行软件编译的过程中，经常会出现以下错误：
undefined reference to ‘crypt’
libdl.so: error adding symbols: DSO missing from command line
openssl/rsa.h: no such file or directory
这些都是软件编译、链接过程中找到不相关头文件或者动态链接库导致的。本文主要讲解]]></description><category></category></item><item><title><![CDATA[C++中的类型转化]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/48489639</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/48489639</guid><author>trochiluses</author><pubDate>Wed, 16 Sep 2015 09:49:45 +0800</pubDate><description><![CDATA[C++中的类型转换种类繁多，很容易出错。本文主要总结，在何种情形该使用什么类型转化。1. char* >> int
atoi 
char s[100]; 
int i=atoi(s);
sscanf 
int sscanf(const char *str, const char *format, …); 
sscanf(s,”%d”,&i); 
*stringstream 
as follows
2]]></description><category></category></item><item><title><![CDATA[C++中shared_ptr的使用]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/48440093</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/48440093</guid><author>trochiluses</author><pubDate>Mon, 14 Sep 2015 15:50:46 +0800</pubDate><description><![CDATA[template  class shared_ptr#include<memory>shared_ptr是C++ 11之后标准库引入的一个特性，用于简化内存管理，防止内存泄露。1.shared_ptr的作用是什么？Objects of shared_ptr types have the ability of taking ownership of a pointer and share that o]]></description><category></category></item><item><title><![CDATA[Docker Image Specification v1.0.0]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/44780291</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/44780291</guid><author>trochiluses</author><pubDate>Tue, 31 Mar 2015 15:29:48 +0800</pubDate><description><![CDATA[Docker Image Specification v1.0.0An Image is an ordered collection of root filesystem changes and the 
corresponding execution parameters for use within a container runtime. This 
specification outline]]></description><category></category></item><item><title><![CDATA[go语言文件操作]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/44338407</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/44338407</guid><author>trochiluses</author><pubDate>Tue, 17 Mar 2015 10:28:19 +0800</pubDate><description><![CDATA[1.os包中File类首先，file类是在os包中的，封装了底层的文件描述符和相关信息，同时封装了Read和Write的实现。type File struct {
    *file
}type file struct {
    fd  int
    name string
    dirinfo *dirInfo
    nepipe  int
}func (f *File) Fd( )uin]]></description><category></category></item><item><title><![CDATA[进程通信之linux信号机制]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/44337815</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/44337815</guid><author>trochiluses</author><pubDate>Tue, 17 Mar 2015 09:56:10 +0800</pubDate><description><![CDATA[摘要:本文主要介绍,linux进程通信中的信号机制,介绍信号的本质与作用原理;重点讲解信号的处理流程,同时介绍了信号的安装\发送\阻塞等概念.]]></description><category></category></item><item><title><![CDATA[僵尸进程]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/44257359</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/44257359</guid><author>trochiluses</author><pubDate>Sat, 14 Mar 2015 10:27:29 +0800</pubDate><description><![CDATA[1.僵尸进程与孤儿进程
僵尸进程:如果子进程先于父进程退出,此时子进程便成为一个尸体;此前,如果父进程没有调用wait等相关系统调用,那么子进程便成为僵尸进程.
孤儿进程:如果父进程先于子进程退出,那么子进程变成为孤儿进程,将被init进程领养.
2.进程相关数据结构
进程控制块PCB:保留了进程运转时所需要的全部信息,是进程表中的一个entry.
当以fork()系统调用建立一个新的进程后，核心进]]></description><category></category></item><item><title><![CDATA[在ubuntu上搭建go编程环境（附带自动化部署脚本）]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/40541343</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/40541343</guid><author>trochiluses</author><pubDate>Tue, 28 Oct 2014 15:58:51 +0800</pubDate><description><![CDATA[自2009年Go语言发布以来，我一直在关注Go语言，如今Go语言已经发展到1.2版本，而且也收到越来越多的人关注这门语言。Go语言设计的目的就是为了解决执行数度快但是编译数度并不理想（如C++)以及编译速度快但执行效率不佳（.NET、Java），或者开发难度低但执行速度一般的动态语言这一问题。所以说，Go语言的特点是：快速编译，高效执行，易于开发。

好了，跳过那些框框条条的craps, 让我]]></description><category></category></item><item><title><![CDATA[C++ 中的比较函数]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/40083319</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/40083319</guid><author>trochiluses</author><pubDate>Tue, 14 Oct 2014 20:21:40 +0800</pubDate><description><![CDATA[在写程序的时候，排序是一种和常用的]]></description><category></category></item><item><title><![CDATA[C++ static关键字的几点说明]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/40077461</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/40077461</guid><author>trochiluses</author><pubDate>Tue, 14 Oct 2014 16:01:15 +0800</pubDate><description><![CDATA[(1)类的静态成员函数是属于整个类而非类的对象，所以它没有this指针，这就导致 了它仅能访问类的静态数据和静态成员函数。      

(2)不能将静态成员函数定义为虚函数。      

(3)由于静态成员声明于类中，操作于其外，所以对其取地址操作，就多少有些特殊 ，变量地址是指向其数据类型的指针 ，函数地址类型是一个“nonmember函数指针”。

(4)由于静态成员函数没有t]]></description><category></category></item><item><title><![CDATA[守护进程]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/40076779</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/40076779</guid><author>trochiluses</author><pubDate>Tue, 14 Oct 2014 14:47:55 +0800</pubDate><description><![CDATA[本文，主要讲解守护进程的定义和相关的原理，并通过一个用户实例来说明如何编写守护进程。


1.守护进程的撰写条件：
1）D要在系统中处于一直运转的状态，也就是说while循环，时刻在监听服务
2）D不能在关闭终端的时候退出—— 为什么终端关闭将导致进程退出呢？
3）D要脱离控制终端，登录会话和进程组—— 注销的时候，为什么有的进程将被注销，而有的不会？


2.相关原理

Q]]></description><category></category></item><item><title><![CDATA[标准输入的原理：cin与scanf]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/39999429</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/39999429</guid><author>trochiluses</author><pubDate>Sat, 11 Oct 2014 20:49:51 +0800</pubDate><description><![CDATA[1.cin 的处理方式


1）如果cin读取整数，会自动忽略换行和空格；遇到文件结束标记，cin  >> a返回的数false


    int a;
    while(cin >> a){ 
        cout 
    }   
    return 0;
eg:1, 2, 3
1 2
3
1 a
2
a 1
2
注意：cin读取到'a'字符的时]]></description><category></category></item><item><title><![CDATA[雅虎笔试题目——最大集合问题]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/39642017</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/39642017</guid><author>trochiluses</author><pubDate>Sun, 28 Sep 2014 15:24:12 +0800</pubDate><description><![CDATA[摘要：sort函数在日常编程中，经常被用到；同时，对内存的初始化函数，经常用到fill，本节，我们以计算LIS为例讲解这两个函数的应用。
例子：有一些老鼠，有x和y两个属性，现在要选择一个最大集合，其中从前到后，老鼠的x属性依次递减，y属性依次递增。


分析：如果我们先按照x属性递减排列，那么形成一个数组，然后问题就转化为求解这个数组中y属性递增排列的最长字串，于是转化为一个动态规划问题]]></description><category></category></item><item><title><![CDATA[使用priority_queue建立小顶推]]></title><link>https://blog.youkuaiyun.com/trochiluses/article/details/39589879</link><guid>https://blog.youkuaiyun.com/trochiluses/article/details/39589879</guid><author>trochiluses</author><pubDate>Fri, 26 Sep 2014 23:37:10 +0800</pubDate><description><![CDATA[template < 
   class Type,  
   class Container=vector, 
   class Compare=less  
> 
class priority_queue

注意，priority_queue是一个模板类，它的定义形式如上;其中，它的每一个参数也是一个类，这里我们主要解释一下Compare 参数。


其中，Compare 参数是一个]]></description><category></category></item></channel></rss>