<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sixsavage的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sixsavage</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sixsavage]]></copyright><item><title><![CDATA[查看使用某个端口的程序]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/5924962</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/5924962</guid><author>sixsavage</author><pubDate>Thu, 07 Oct 2010 11:31:00 +0800</pubDate><description><![CDATA[10月7日早上，Mu很早就把我从床上拽下来，“我的接口机程序起不来了！！”

我试了试，程序无法启动，日志显示socket::bind报错，无法绑定指定端口。
我于是用netstat试了试：
[ismap530@mdms ismap530]$ netstat -na | grep 18893
tcp  0   0 10.2.0.191:18893  10.2.0.191:18893 ESTABLISHED
“哦，有程序占用了端口，还是一个客户端程序。”

“怎么查看占用某端口的进程？”我马上]]></description><category></category></item><item><title><![CDATA[线程处理完成，如何立即释放线程？]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/3165232</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/3165232</guid><author>sixsavage</author><pubDate>Tue, 28 Oct 2008 10:50:00 +0800</pubDate><description><![CDATA[某时之前，我认为在unix下面所谓释放线程，就是在线程处理函数完成退出。因此线程程序就如下了：#include #include void * func(void * arg){    pthread_exit(0);    return 0;}int main(int argc, char ** argv){    pthread_t pt_id;    if(0 != pthread_crea]]></description><category></category></item><item><title><![CDATA[单线程程序转为多线程]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/2893901</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/2893901</guid><author>sixsavage</author><pubDate>Sun, 07 Sep 2008 11:00:00 +0800</pubDate><description><![CDATA[说起来，单线程程序转为多线程，需要注意的事情很多，比如，对全局变量的同步处理，函数的去静态变量...这次遇到的就是具有静态属性的函数问题。项目最开始的时候我们认为所有的并行工作都用多进程来实现了，为了所作的数据访问层足够的快，我们选择了不明智的不支持多线程的编程方式，完成了大量的数据库访问函数。“访问句柄是全局的，函数中随地可以见到静态变量。”...没想到报应来的如此快，某一个功能模块，需要由单线]]></description><category></category></item><item><title><![CDATA[查看程序依赖的sl：ldd]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/2300473</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/2300473</guid><author>sixsavage</author><pubDate>Thu, 17 Apr 2008 12:45:00 +0800</pubDate><description><![CDATA[电信测试继续进行，几个兄弟在电信测试环境想用用我在开发环境做测试用的模拟器， 好吧，我帮你们ftp过来。再电信环境执行，嗯，提示有一个库libstdc++.sl.6找不到，没问题，从开发环境又ftp一个库过来，执行，还是提示找不到，又查看环境变量，LD_LIBRARY_PATH配置正确，又查看libstdc++.sl.6属性，有执行权限，小郁闷了半天。突然想起通过ldd可以查看开发环境这个程序的依]]></description><category></category></item><item><title><![CDATA[unix shell 循环]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/2300449</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/2300449</guid><author>sixsavage</author><pubDate>Thu, 17 Apr 2008 12:30:00 +0800</pubDate><description><![CDATA[电信测试又开始了，有很多测试用例，会发多次同样的请求包。如若用测试工具一条一条的发太麻烦，就用shell写一个临时的工具：x=1while [ $x -le $2 ]        do        g4 $1        let x=x+1done用着挺爽。]]></description><category></category></item><item><title><![CDATA[rails的链接oracle数据库的几个问题。]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/1796348</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/1796348</guid><author>sixsavage</author><pubDate>Sat, 22 Sep 2007 22:58:00 +0800</pubDate><description><![CDATA[最近学学rails，随便为我们的实时系统做一个测试用的模拟器。以前没有接触过rails，在网上看了两天ruby的资料，买了一本《Agile Web Development with Rails》，翻了翻开始做 起来。下载ruby，下载rails，一切顺利。1.配置数据库，我们以前的系统用的是oracle9，于是我在http://rubyforge.org/projects/ruby-oci8下]]></description><category></category></item><item><title><![CDATA[要命的-lpthread]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/1632904</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/1632904</guid><author>sixsavage</author><pubDate>Thu, 31 May 2007 15:20:00 +0800</pubDate><description><![CDATA[ 事件1：移植Red Hat Linux平台某电信服务器服务端接口程度到HPUX时间：2007年某日某早该程序的服务线程池由ACE_TASK的实现，在收到客户请求时会唤醒相应的线程处理业务。当我在HPUX启动程序的时候，发现ACE_TASK的activate函数调用失败。辗转反侧，不知所谓。自己做了一个测试程序，简单到只有ACE_TASK的一个类，实例对象，生成线程，错。 事件]]></description><category></category></item><item><title><![CDATA[双缓冲技术的简单使用]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/487484</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/487484</guid><author>sixsavage</author><pubDate>Thu, 22 Sep 2005 23:34:00 +0800</pubDate><description><![CDATA[所谓需要的时候才想到去寻找。我的程序里面需要用了一个动换场面，但是GDI简单的动画实现，不可避免的让我的显示器闪动不已，我知道，要么放弃GDI而用DirectX，要么就用双缓冲技术，于是，我去google了，找到了很多篇文章，其实只有一篇，呵呵在此记录下来：在OnDraw或者OnPaint函数中加入如下代码：       CClientDC dc(this);    CRect rect;    ]]></description><category></category></item><item><title><![CDATA[给对话框加上背景皮肤]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/486167</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/486167</guid><author>sixsavage</author><pubDate>Wed, 21 Sep 2005 09:29:00 +0800</pubDate><description><![CDATA[对话框的skin前段时间有些学生问我，怎么给我们做的对话框加上漂亮的skin，特别是就像qq游戏的登录以及游戏界面一样（qq游戏的登录界面就是一个对话框）。经过一些曲折，我在www.codeproject.com中找到了一些给对话框及控件加skin的方式，在下面我通过一个例子给出了其中一种最简单的方法，通过这种方式作出的对话框会根据skin图片的大小调整。在我的例子中，我用了首先做了一个简单的基于]]></description><category></category></item><item><title><![CDATA[Boost源码简析系列——Array(2)]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/14688</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/14688</guid><author>sixsavage</author><pubDate>Tue, 23 Mar 2004 10:10:00 +0800</pubDate><description><![CDATA[Boost源码简析系列——Array(2)1.         赋值函数等                         //...         static size_type size() { return N; }        static bool empty() { return false; }        static size_type max_size() ]]></description><category></category></item><item><title><![CDATA[Boost源码简析系列——Array(1)]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/14687</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/14687</guid><author>sixsavage</author><pubDate>Tue, 23 Mar 2004 10:01:00 +0800</pubDate><description><![CDATA[Boost源码简析系列——Array(1)Array是Nicolai M.Josuttis为boost扩展库编写的一个类，她为静态数组增加了容器的一些特性，比如增加了迭代器，类似vector的元素访问访问方式等等。下面对boost的简介部分翻译自boost说明文档。C++标准模板（STL）作为C++标准库的一部分，她提供了种类繁多的容器类，然而，对于普通的数组类，STL就没有提供其]]></description><category></category></item><item><title><![CDATA[Boost源码简析系列——timer（2）]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/14686</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/14686</guid><author>sixsavage</author><pubDate>Sat, 20 Mar 2004 14:37:00 +0800</pubDate><description><![CDATA[Boost源码简析系列——timer（2）对于timer的第二个头文件中包含的两个类，我早就想写出来，但是最近忙着写代码，今天终于有时间写了，并且前段时间解决了一个问题，用的就是timer，所以也给了我动力。剩下的两个类，grogress_timer和grogress_display都定义在头文件progress.hpp中，由Beman Dawes编写，最新版是2001年11月1日]]></description><category></category></item><item><title><![CDATA[Boost源码简析系列——timer]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/14685</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/14685</guid><author>sixsavage</author><pubDate>Mon, 01 Mar 2004 10:04:00 +0800</pubDate><description><![CDATA[Boost源码简析系列——timer（1）“Boost库是一个经过千锤百炼、可移植、提供源代码的C++库，作为标准库的后备，是C++标准化进程的发动机之一。Boost库由C++标准委员会库工作组成员发起，在C++社区中影响甚大，其成员已近2000人。Boost库为我们带来了最新、最酷、最实用的技术，是不折不扣的“准”标准库。”摘自《C++ Boost 简介》。“一直流传这么一个]]></description><category></category></item><item><title><![CDATA[基于wxWindows的“hello world”]]></title><link>https://blog.youkuaiyun.com/sixsavage/article/details/14684</link><guid>https://blog.youkuaiyun.com/sixsavage/article/details/14684</guid><author>sixsavage</author><pubDate>Sun, 22 Feb 2004 23:12:00 +0800</pubDate><description><![CDATA[基于wxWindows的“hello world”很多人需要一个简单的例程，用来对wxWindows快速的入门，了解其程序的组织形式和法则。同其他的很多库（比如STL、Boost）一样，我们要使用wxWindows的组件就得在代码中包含wxWindows相关的头文件。一般来说，只要我们的编译器支持预编译的功能就可以包含wxprec.h（＃inlcude “wx/wxprec.h”），如]]></description><category></category></item></channel></rss>