<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bblueske的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bblueske</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bblueske]]></copyright><item><title><![CDATA[linux自定义信号处理]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/14182823</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/14182823</guid><author>bblueske</author><pubDate>Tue, 05 Nov 2013 20:08:52 +0800</pubDate><description><![CDATA[有时候我们需要在程序中利用信号来控制程序行为，linux为我们提供了2个已经定义的信号SIGUSR1和SIGUSR2，一般的程序利用这2个信号已经能满足需要，不过我最近需要一些其他信号来避免覆盖原来的信号处理函数。

    上网查了一下，看到了下面的程序片段： 
 


#define MYSIG_MSG        (SIGUSR2 + 1)
// 定义信号然后注册处理函数]]></description><category></category></item><item><title><![CDATA[linux下用于编码转换的函数]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/9241781</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/9241781</guid><author>bblueske</author><pubDate>Thu, 04 Jul 2013 12:33:06 +0800</pubDate><description><![CDATA[iconv_t iconv_open(const char *tocode, const char *fromcode);
size_t iconv(iconv_t cd,char **inbuf,size_t
 *inbytesleft,char **outbuf,size_t *outbytesleft);

int
 iconv_close(iconv_t cd);

以上三个]]></description><category></category></item><item><title><![CDATA[Linux生成指定大小文件的方法]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/9146533</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/9146533</guid><author>bblueske</author><pubDate>Fri, 21 Jun 2013 16:24:53 +0800</pubDate><description><![CDATA[[转载]原地址：http://rubyer.me/blog/196/

# dd if=/dev/zero of=50M.file bs=1M count=50


在当前目录下生成一个50M的文件

————————————分隔线——————————————–

如果你想了解更多，请看下面的扩展阅读

虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image]]></description><category></category></item><item><title><![CDATA[centos5.8安装postgresql以及python模块psycopg2]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/9133031</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/9133031</guid><author>bblueske</author><pubDate>Wed, 19 Jun 2013 23:12:35 +0800</pubDate><description><![CDATA[安装postgresql比较简单，按照postgresql官网上的说明，yum install postgresql91-server postgresql91-contrib yum install
 postgresql运行这三个命令就可以安装成功，然后通过 service postgresql start 启动服务。
安装psycopg2模块比较麻烦，下载源码包后编译提示需要pg_con]]></description><category></category></item><item><title><![CDATA[[转]TCP慢启动]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8726702</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8726702</guid><author>bblueske</author><pubDate>Wed, 27 Mar 2013 15:07:57 +0800</pubDate><description><![CDATA[网上看到的解释TCP慢启动的，觉得不错就转了。
为了防止网络的拥塞现象，TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成，后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recov]]></description><category></category></item><item><title><![CDATA[关于struct和class的区别]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8726549</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8726549</guid><author>bblueske</author><pubDate>Wed, 27 Mar 2013 14:53:40 +0800</pubDate><description><![CDATA[struct和class的区别在C++中的区别比较小，两者都可以用来定义类，进行方法和运算符重载，
他们的区别在于默认的访问级别，struct在没有声明访问修饰符的时候默认是public，而class为private
代码:

struct S{
    S() : m_a(0){}
    int m_a;
};
class C{
    C() : m_a(0){}
    int m]]></description><category></category></item><item><title><![CDATA[[转]ubuntu修改系统语言]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8682384</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8682384</guid><author>bblueske</author><pubDate>Sat, 16 Mar 2013 22:35:29 +0800</pubDate><description><![CDATA[ubuntu12.10安装的时候装了英文版，系统设置里的语言支持显示已经安装简体中文，但是在可选择的语言里面汉语选项是灰色的，
在网上找到解决方法，来自ubuntu论坛。
修改 /etc/default/locale 

LANG="zh_CN.UTF-8" 
LANGUAGE="zh_CN:zh:en_US:en" 

修改 etc/environment 

PATH="/u]]></description><category></category></item><item><title><![CDATA[C++ STL中判断list为空，size()==0和empty()有什么区别]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8638650</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8638650</guid><author>bblueske</author><pubDate>Tue, 05 Mar 2013 16:54:24 +0800</pubDate><description><![CDATA[关于两个的区别，首先size()==0为bool表达式，empty()为函数调用，这一点很明显。查看源代码，
  bool empty() const { return _M_node->_M_next == _M_node; }
  size_type size() const {
    size_type __result = 0;
    distance(begin(), end(),]]></description><category></category></item><item><title><![CDATA[查找数组中第K大的值]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8622878</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8622878</guid><author>bblueske</author><pubDate>Thu, 28 Feb 2013 17:07:55 +0800</pubDate><description><![CDATA[今天面试遇到了一个问题，面试官问我：“如何在一个给定的无序数组找到第K大的值”。我想了下肯定不能先排序，再查找，那样效率太低，于是乎就想有没有更好的办法。
首先就想到了线性算法，能不能在几趟扫描把这个数找到，结果死活没弄出来，还弄了一个错误的方案被面试官质疑了。
回来之后查了下原来可以用快速排序的分割步骤来找，效率也比较高，顿时就感觉自己好煞笔。不过还是因为自己对这些排序查找算法理解不够深刻，]]></description><category></category></item><item><title><![CDATA[局部变量什么时候分配内存]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8618142</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8618142</guid><author>bblueske</author><pubDate>Wed, 27 Feb 2013 16:03:34 +0800</pubDate><description><![CDATA[以前在学习的时候看到过一句话，
“
	栈区（stack）— 程序运行时由编译器自动分配，存放函数的参数值，局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放
”
就一直以为局部变量内存是由编译器分配，也没多想怎么分配。
今天被别人问到 “程序执行的过程中编译器怎么还能参与内存分配” 一下就傻眼了，网上查了下，这句话的意思应该是
 “

编译器在编译的过程中，]]></description><category></category></item><item><title><![CDATA[安装ubuntuu遇到的显卡驱动问题]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8539941</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8539941</guid><author>bblueske</author><pubDate>Thu, 24 Jan 2013 22:07:41 +0800</pubDate><description><![CDATA[最近安装ubuntu12.04，完了发现没法上网0
ifconfig -a 查看只有 lo 和 wlan0，没有eth*，网上查了下
可能是网卡驱动的问题。
    用lspci |grep net 看了下网卡的信息，再到网上搜了下
用 http://www.linuxwind.org/html/install-atheros-ar8161-ethernet-driver-on-ubunt]]></description><category></category></item><item><title><![CDATA[__attribute__ ((__packed__))编译选项]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8458499</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8458499</guid><author>bblueske</author><pubDate>Wed, 02 Jan 2013 10:59:08 +0800</pubDate><description><![CDATA[最近在不同的环境编译epoll程序的时候总是有问题，看了下系统epoll.h，原来是两个不同的版本。
其中有些宏定义老版的没有，而在老版中定义
struct epoll_event
{
  uint32_t events; /* Epoll events */
  epoll_data_t data; /* User data variable */
} __attribute__ (]]></description><category></category></item><item><title><![CDATA[C++调用的LUA脚本中加载其他库的问题]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8172526</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8172526</guid><author>bblueske</author><pubDate>Sun, 11 Nov 2012 23:53:53 +0800</pubDate><description><![CDATA[最近使用lua扩展c++程序，需要在调用的脚本中require另一个库，
static const luaL_reg lualibs[] =
{
{"package", luaopen_package},
LUA_EXTRALIBS{NULL, NULL}
};

  const luaL_reg* lib = lualibs;
for (; lib->func; lib++)]]></description><category></category></item><item><title><![CDATA[关于函数指针的一点总结]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8131760</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8131760</guid><author>bblueske</author><pubDate>Wed, 31 Oct 2012 11:50:07 +0800</pubDate><description><![CDATA[以前在使用函数指针的时候，没有弄明白函数名和函数指针类型的区别，今天做了个小测试，总结一下测试结果。

int32_t mytest(int32_t id)
{
printf("my test\n");
return 0;
}
typedef int32_t (*P_FUN)(int32_t);
P_FUN t /*0x00499e0c*/   = mytest /*0x00519]]></description><category></category></item><item><title><![CDATA[[转]ubuntu下编译lua]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8114979</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8114979</guid><author>bblueske</author><pubDate>Fri, 26 Oct 2012 13:22:56 +0800</pubDate><description><![CDATA[在windows下编译lua，需要安装mingw，然后运行make mingw



在Linux下直接运行make linux，在ubuntu下如果提示

luaconf.h:275: fatal error: readline/readline.h: 没有那个文件或目录
则需要安装readline库

sudo apt-get install libreadline5-dev]]></description><category></category></item><item><title><![CDATA[使用vld(visual leak detector)进行内存泄露调试]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/8102855</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/8102855</guid><author>bblueske</author><pubDate>Tue, 23 Oct 2012 14:52:04 +0800</pubDate><description><![CDATA[最近写了个程序，需要进行内存泄露调试，用到了vld工具，记一下方法防止以后要用到后忘记。
1.安装vld，下载http://vld.codeplex.com/好安装
2.添加vs2008环境，tool->options->project and solution->vc++ directories，在show directories for下拉框里面，
添加安装目录下的include 目录和]]></description><category></category></item><item><title><![CDATA[UnicodeDecodeError at / 'utf8' codec can't decode bytes]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/7599920</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/7599920</guid><author>bblueske</author><pubDate>Thu, 24 May 2012 21:08:09 +0800</pubDate><description><![CDATA[在用Django的时候，写了个静态网页，访问时出现 

UnicodeDecodeError
 at / 'utf8' codec can't decode bytes
错误，Google了下原来是编码问题，我用的vim默认的编码是ascii，将文件编码改为utf8重新保存后问题解决。]]></description><category></category></item><item><title><![CDATA[文本转xls的小技巧]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/6990028</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/6990028</guid><author>bblueske</author><pubDate>Fri, 18 Nov 2011 23:16:54 +0800</pubDate><description><![CDATA[----------做一个将数据导出为excel文件的程序时偶然间网上看到的
文本文件也可以变成Excel电子表格。奥秘在于（你可以在windows下打开记事本来做这个实验）在每行的各项数据之间加入tab键，在行与行之间加入换行键，然后保存的时候后缀名为xls即可。]]></description><category></category></item><item><title><![CDATA[c++指针访问小结]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/6838436</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/6838436</guid><author>bblueske</author><pubDate>Fri, 30 Sep 2011 21:41:58 +0800</pubDate><description><![CDATA[c++指针在类族中如何访问类成员。
问题描述：指针进行转换时，指针如何访问类普通成员和虚函数成员。
class A；
class B: class A;
B *pb;
A *pa = (A*)pb;
pa->f();
指针访问首先根据指针的声明类型确定访问的范围，比]]></description><category></category></item><item><title><![CDATA[堆和栈的区别]]></title><link>https://blog.youkuaiyun.com/bblueske/article/details/6824525</link><guid>https://blog.youkuaiyun.com/bblueske/article/details/6824525</guid><author>bblueske</author><pubDate>Mon, 26 Sep 2011 22:55:17 +0800</pubDate><description><![CDATA[1.1内存分配方面：
堆：一般由程序员分配释放，若程序员不释放，程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事，分配方式是类似于链表。可能用到的关键字如下：new、malloc、delete、free等等。
栈：由编译器(Compiler)自动分配释放，存放函数的]]></description><category></category></item></channel></rss>