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