技术文章

摘要: 利用OPENSSL建立证书,利用证书进行签名.及其它的CA操作.阅读全文
posted @ 2008-10-12 14:31 shipfi 阅读(1747) | 评论 (0) 编辑
摘要: 此文章为转载! 摘要:vsFTPD是一款小巧易用FTP服务器程序;本文面向初学者的一点疑问,能让初学者在最短的时间内学会最简单的vsftpd服务器的架设;本文应该算是初学者练手篇;正在更新之中;本文基于 vsftpd-2.0.3;阅读全文
posted @ 2008-10-12 14:22 shipfi 阅读(81) | 评论 (0) 编辑
摘要: GDB 调试程序的一些用法。 很杂,抄网上的很多,不过也算比较适用。阅读全文
posted @ 2008-08-04 17:38 shipfi 阅读(1296) | 评论 (0) 编辑
摘要: 文章转自:http://www.linuxsir.org/bbs/showthread.php?t=176673
文章中涉及许多Unix中非常有用及细节的编程问题阅读全文
posted @ 2008-07-08 09:50 shipfi 阅读(319) | 评论 (0) 编辑
摘要: bash编程中的几个注意点。记下,以备忘。阅读全文
posted @ 2008-06-12 23:39 shipfi 阅读(130) | 评论 (0) 编辑
摘要: Makefile的写法.
不懂,比较烦.尤其是涉及规则的时候.真是烦透了.阅读全文
posted @ 2008-05-28 16:50 shipfi 阅读(204) | 评论 (1) 编辑
摘要: 在看《Unix环境编程》这本书的时候,这三个概念一直闹得不清楚. 书上讲得也不是太仔细(太高估俺的智商啦).
一方面,涉及到多进程IPC的程序中关于uid的设置,代码看得让人摸不着头脑.
网上有这方面的说明,中文太多的文章都是了了.且一成不变,都是一大抄.

还是chinaunix上面对于这几个概念回答的比较到位. 有深度也有广度.


这篇贴子在:http://bbs.chinaunix.net/viewthread.php?tid=820766阅读全文
posted @ 2008-05-14 17:21 shipfi 阅读(452) | 评论 (0) 编辑
摘要: vim+taglist+ctags使用说明.
另,再附上我在Linux中的.vimrc配置阅读全文
posted @ 2008-05-08 00:38 shipfi 阅读(3013) | 评论 (0) 编辑
摘要: 对于windows中的_vimrc配置, 只是解决了中文乱码的问题,可以在日文OS中显示中文. 另外,对于显示日文,需要手动配置一下.阅读全文
posted @ 2008-05-07 11:26 shipfi 阅读(244) | 评论 (1) 编辑
摘要: typedef与函数指针的一些常用法。
另外,以下这篇文章也对函数指针有一个很好的说明。
http://teren.itpub.net/post/15914/189516阅读全文
posted @ 2008-05-06 12:56 shipfi 阅读(434) | 评论 (0) 编辑
摘要: 命令包括:
(1) 移动
(2) 匹配
(3) 操作
(4) 删除
(5) 取代及还原
(6) 加上数目字:
(7) 格式化文本:
(8) 复制(yank)
阅读全文
posted @ 2008-05-04 22:16 shipfi 阅读(241) | 评论 (0) 编辑
摘要: 使用sigaction来实现signal函数,然后用一个例子测试一下.
该例子打印3的倍数,两秒运行后接收到SIGALRM信号. 超时退出.阅读全文
posted @ 2008-04-23 17:25 shipfi 阅读(418) | 评论 (0) 编辑
摘要: 以下是可以直接用来在C源程序中使用的宏函数,用来得到一些信息。包括打印源文件名,行数,日期,时间等。

对于这些调试信息,还可以进行扩充。

阅读全文
posted @ 2008-04-22 22:29 shipfi 阅读(91) | 评论 (0) 编辑
摘要: 在vim中,使用Cscope来快速定位函数的定义,查找函数的原型,很方便。

在我Fedora8的机器中,已经默认安装了cscope这个程序。

刚刚使用cscope,不是很熟悉,很多“先进的”功能留待以后慢慢挖掘。 这里先写一下vim中简单的使用cscope,以便能够在源代码中:
1. 快速切换至函数的定义。
2. 函数的声明.
3. 查找某个函数被使用的情况。

首先,让vim支持cscope,在~/.vimrc中加入:
"set cscopequickfix=s-,c-,d-,i-,t-,e-"

其次,要在源代码目录内生成相关的cscope的信息.
这里以libpcap代码为例
#cd /usr/code/libpcap
#cscope -Rbq

#把生成的cscope文件导入到vim中来
#:cs add /usr/code/libpcap/cscope.out /usr/code/libpcap/

下面就可阅读全文
posted @ 2008-04-21 16:36 shipfi 阅读(5976) | 评论 (1) 编辑
摘要: 在bash脚本编程中,有些地方比较容易迷惑,也容易出错。
今天就碰到一例,例如:


if["$UID" -ne "$ROOT_UID"]
then
echo "Must be root to run this script"
exit $E_NOTROOT
fi

就以上几行代码,就有两处错误。

1) if和[之间没有空格。 产生错误。
2) [和"之间,"和]之间没有空格,产生错误。

也行是写C代码写习惯了,不经意间就像写C程序一样的语法和格式。
其实,为什么要有空格也比较好理解,因为是shell脚本嘛,最终还是执行的shell命令。如果没有空格,以上语句:
if["$UID" -ne "$ROOT_UID"]
shell完全可以理解成:
if["$UID" -->由于没有空格,它会不会是命令呢????

所以,在写shell脚本的时候,空格是一定要注意的。阅读全文
posted @ 2008-04-19 23:37 shipfi 阅读(86) | 评论 (0) 编辑
摘要: 程序有两个功能:
1. 使用system函数调用shell命令,shell命令在启动程序参数中给出。
2. shell程序退出时可以获得其退出状态。

以上程序是根据APUE里的例子来实现的。可以参考8.6和8.13节。阅读全文
posted @ 2008-04-18 16:31 shipfi 阅读(392) | 评论 (0) 编辑
摘要: 最近在看Stevens的《Unix环境编程》,其中第八章讲到了进程的控制,里面有关于僵死进程的描述,但看完后还是不是很了解。

网上有一篇《浅议Unix的defunct进程》的文章,其原理描述的比较详细有用,所以转载到此。

本文出自:http://www2.ccw.com.cn 作者: 张道新 赵国明 阅读全文
posted @ 2008-04-18 11:27 shipfi 阅读(554) | 评论 (0) 编辑
摘要: 1. 在源程序中的最上层目录键入ctags命令:
例如,在/home/shipfi/Code/Qoe目录下键入:
#ctags -R
以上命令会在当前目录下生成tags文件。

2. 当使用vim打开文件后,键入以下命令:
:set tags=/home/shipfi/Code/Qoe/tags

3.以上设置后,就可以在源文件中使用Ctrl+]来进行源文件中的相关函数的跳转。

4.也可以将这句话放到~/.vimrc中去, 如果你经常在这个工程编程的话.

5.如果此时你还想再跳回刚才的位置, 你还可以按

6.修改程序后, tags文件不能自动rebuild, 你必须手动再运行一下命令:
#ctags -Rt


关于taglist.及更多的vim操作,可查看:
http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx阅读全文
posted @ 2008-04-12 23:32 shipfi 阅读(430) | 评论 (0) 编辑
摘要: 为了提高工作效率,以下几个知识点需要在有闲暇或者专门抽取时间加紧学习,并熟练使用.

1.awk,sed的熟练使用.
---处理文本,数据的一把利器.Linux 和UNIX 工具箱中最有用的工具之一.
争取熟练掌握.

2.bash编程.
---Unix/Linux下基础的东东. 会及大提高效率. 需要多加练习.

3.gdb, strace的使用.
---程序调试,跟踪. 在Unix/Linux下写程序不可避免要用到.

4. vim熟练使用.
---一个优秀的文本编辑器. 熟练使用后,及大提高写代码,操作文件的效率.

5.正则表达式的学习.
---匹配,替换,操作字符利器.

6.python脚本语言学习.
---让解决实际应用尽可能简单化.


好像就这么多了, 希望一切顺利吧.阅读全文
posted @ 2008-04-11 11:28 shipfi 阅读(60) | 评论 (0) 编辑
摘要: 转载的一篇文章,介绍了Unix及FreeBSD的起源和历史.阅读全文
posted @ 2008-04-10 16:12 shipfi 阅读(54) | 评论 (0) 编辑
摘要: Linux中语言的设置和本地化设置真是一个很繁琐的事情,时不时的会出现乱码的情况,在这篇文章中讨论的是shell中出现乱码的一些解决方法.
一般来说,linux中显示什么语言是通过环境变量来确认的. 这些环境变量包括:
$LANG / $LANGUAGE / $LC_CTYPE ....
可以通过locale命令查看这些变量的值.
要设置这些变量,可以通过export命令来进行.如:
# export LANG=uc_EN
# export LC_CTYPE=c

可以把以这些命令加入到~/.bash_profile文件中,这样,就成了默认配置.

另外,文件/etc/sysconfig/i18n 也是可以配置语言选项的.阅读全文
posted @ 2008-04-10 11:30 shipfi 阅读(1031) | 评论 (0) 编辑
摘要: 把以下设置添加到.vimrc中。

set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
set fileencoding=chinese
else
set fileencoding=utf-8
endif
language message zh_CN.utf-8
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"set font
set guifont=Nsimsun阅读全文
posted @ 2008-04-07 10:57 shipfi 阅读(777) | 评论 (0) 编辑
摘要: Linux下多线程编程与信号处理易疏忽的一个例子阅读全文
posted @ 2008-02-20 20:59 shipfi 阅读(353) | 评论 (0) 编辑
摘要: 在Linux中加载IPv6地址.阅读全文
posted @ 2008-01-29 20:22 shipfi 阅读(520) | 评论 (0) 编辑
摘要: 基于Linux IPv6流媒体配置的实现.阅读全文
posted @ 2008-01-14 17:38 shipfi 阅读(1800) | 评论 (0) 编辑
摘要: 关于SNMP的一些资料.阅读全文
posted @ 2008-01-05 17:30 shipfi 阅读(516) | 评论 (0) 编辑
摘要: 在Fedora6上编译log4cxx0.97版本所遇到的两个错误。导致编译不能通过。解决方法见正文。阅读全文
posted @ 2008-01-04 22:46 shipfi 阅读(533) | 评论 (0) 编辑
摘要: 最近在工作中需要使用网络仿真器来设置网络中的速率,丢包,延迟. 在FreeBSD OS中可以使用DummyNet+Ipfw来进行设置.但是在Linux下有什么软件来进行模拟呢?

可供选择的有两种:
1.NistNet: 非常强大的工具,缺点是文档比较少.
2.NetEm: 简单实用.能够在网络环中“gives you to delay, reordering, loss, etc...”

关于NetEm. 对于我机器Fedora6的系统来说,已经自带了这个工具. 使用命令“tc”可以进行相应的设置. 这里有一篇NetEm的帮助,非常有用.阅读全文
posted @ 2008-01-04 11:23 shipfi 阅读(942) | 评论 (0) 编辑
摘要: Codec是什么?在数字视频领域,用的名称叫“多媒体数字信号编码解码器”. 它指的是以一种视频传输中的标准的编码解码方法.如我们所熟知 的:MPEG-1, MPEG-2,MPEG-4....
而container format,是一种承载视频的格式,如名字所理解的,它可能像一种容器格式. 比如,像我们所使用的avi,mpg,mov等等.而其视频是用什么方式进行编码解码的,则与上面所述的Codec相关了.阅读全文
posted @ 2007-12-29 14:02 shipfi 阅读(831) | 评论 (0) 编辑
摘要: FTP的应答说明.阅读全文
posted @ 2007-12-19 09:37 shipfi 阅读(443) | 评论 (1) 编辑
摘要: Fedora 6默认安装后如果挂载ntfs格式的分区是不被支持的。如何让Fedora 6支持ntfs格式的文件。让C盘能够挂载到linux中。
如果有yum的话,一些好办多了。
# yum install fuse fuse-libs ntfs-3g ntfsprogs ntfsprogs-gnomevfs
敲一下以上命令就行了。
然后,可以直接挂载ntfs格式的分区了:
mount -t ntfs /dev/hda1 /mnt/CDisk


关于yum更新太慢的解决办法:
这里有一篇文章,解决了yum更新太慢的问题:
http://www.linuxsir.org/bbs/showthread.php?t=290570阅读全文
posted @ 2007-12-17 23:43 shipfi 阅读(368) | 评论 (0) 编辑
摘要:
1.对vim进行设置:
2.设置C编码风格
3.设置缩进
4.设置显示行号;
5.查找时考虑大小写与不考虑大小写:
6.语言支持:
7.模式行(modeline)阅读全文
posted @ 2007-12-08 14:51 shipfi 阅读(316) | 评论 (0) 编辑
摘要: 最近在项目中需要用到C++的Boost库及WinPcap库,Boost库是C++的"准"标准库.WinPcap库则是Windows下的libpcap.用来抓取网络的数据包进行解析.

那么如何在VC++2005中导入boost库呢:
1.去www.boost.org下载BOOST的install文件,现在的版本是V1.34.1.下载完后,进行安装.这里不谈,如果安装成功,应该在安装目录下生成几个相应的文件夹,包括:
\boost\ 相关的头文件都在这里.
\lib\ 库文件
\doc\ 相关文档,example等.

2. 如果针对某个单独项目(如:project1)使用boost的功能,则在"项目"--"project1属性"--"C/C++"--"常规"--"附加包含目录"中加入boost的安装目录,如:C:\Program Files\boost\boost_1_34_1
点击"项目"--"project1属性"阅读全文
posted @ 2007-12-06 22:18 shipfi 阅读(1605) | 评论 (0) 编辑
摘要: PSTN是所有的交换设备和网络设备的集合,它们都是那些参与提供网络服务的信息运送者。当谈到PSTN时,指的主要是有线电话网络以及它和蜂窝电话、PCS和卫星通信等无线网络的接入点。请求者通过大的语音交换机访问PSTN有线网络,这些交换机放在电话公司的中央局,通过普通的模拟电话或数字PBX系统带给我们基本的电话服务。这种访问既可以通过有线电话也可以通过无线网络实现。
阅读全文
posted @ 2007-05-29 15:15 shipfi 阅读(596) | 评论 (0) 编辑
摘要: TELNET连接之间服务器与客户端之间的选项协商阅读全文
posted @ 2007-05-29 13:37 shipfi 阅读(1548) | 评论 (0) 编辑
摘要: 从底层的Windows Socket API谈起.
参考教材是《Windows网络编程》阅读全文
posted @ 2007-05-22 23:56 shipfi 阅读(232) | 评论 (0) 编辑
摘要: 最近工作中要调查一段程序从Windows 2000迁移到Windows Vista环境中,该程序是一个典型的客户端/服务器程序. 客户端为Windows. 服务器为Linux. Linux服务器提供了FTP/Telent服务.
客户端需要经常到Linux服务器上通过FTP上传和下载文件数据.当客户端运行在win2000/XP环境中时,一切运行良好,但在Vista环境中,则两者之间的通信受阻,而具体原因通过抓包分析,则是Windows Socket API在发送FTP包时,在Vista机器中,数据包发送交是本机的hostname,而非IP地址.
于是,需要对程序中涉及到Windows Socket 及MFC中的CAsyncSocket的继承类进行分析,并排查.究竟是哪地方出现问题。
这篇文章,把最近关于在Windows中进行网络编程所涉及的基础知识记录下来. 希望能够近期解决以上问题.
另,Windows Vista实在实在实在是太BT了........................不断的弹对话框提示框要把人逼疯!阅读全文
posted @ 2007-05-21 16:10 shipfi 阅读(777) | 评论 (0) 编辑
摘要: Session Initiation(会话初始协议),允许使用Internet端点(用户代理)来寻找参与者并且允许建立一个可共享的会话描述。SIP允许创建基础的 networkhosts(叫做代理服务器),并且允许终端用户注册上去,发出会话邀请,或者发出其他请求。可以用来创建,修改和终止会话,它独立运作于通讯协议之下,并且
不依赖建立的会话类型。
SIP不是一个垂直集成的通讯系统。SIP可能叫做是一个部件更合适,SIP应该和其他的协议一起工作,才能提供完整的对终端用户的服务。虽然基本的 SIP协议的功能组件并不依赖于这些协议。
SIP本身并不提供服务。但是,SIP提供了一个基础,可以用来实现不同的服务。阅读全文
posted @ 2007-05-10 21:15 shipfi 阅读(1007) | 评论 (3) 编辑
摘要: 经常在工作中需要截取网络中的数据包,Entereal这个工具对于截包,分析数据包十分不错,功能也强大。这里介绍了截获包的几个过滤规则。阅读全文
posted @ 2007-04-29 15:58 shipfi 阅读(2080) | 评论 (0) 编辑
摘要:
作者:Stanley B. Lippman 来自 方舟 Blog
[译序:这是一篇古老的文章。但毫无疑问,Lippman对delegate的阐述是精辟的。]

如果你想拿 C# 与其它“C家族”的语言做比较,C# 正有个不同寻常的特性,其在 C++ 或者 Java 里没有真正意义上的对应之物。阅读全文
posted @ 2007-04-24 12:53 shipfi 阅读(92) | 评论 (0) 编辑
摘要: 使用缓存的情况:要缓存那些经常被访问,并且变化不大的数据。缓存整个应用程序都要使用的设置或对象(但这些设置和对象一般情况下在其生存期内不变化)阅读全文
posted @ 2007-04-15 22:05 shipfi 阅读(86) | 评论 (0) 编辑
摘要:
1.浅谈ASP.NET的Postback
2.Net Framework: 字符串的驻留(String Interning)
3.Javascript Lib阅读全文
posted @ 2007-04-11 14:49 shipfi 阅读(127) | 评论 (0) 编辑
摘要:
包容和聚合实际上是使一个组件使用另外一个组件的一种技术。在包容的情况下,外部组件将包含内部组件。在聚合的情况下,外部组件聚合内部组件。
在此设想一下,外部组件是我们的要实现的组件,而内部组件是其它要重用的组件。
包容是外部组件包含指向内部组件接口的指针.外部组件相对来说是内部组件的一个客户,它将使用内部组件的接口来实现它自己的接口.
在上一篇的基础上实现了组件CB对CA组件的包容.阅读全文
posted @ 2007-02-15 17:03 shipfi 阅读(1569) | 评论 (0) 编辑
摘要: 在上一篇中,介绍了怎么样用动态链接库去实现COM,但组件对我们来说仍是不透明的,我们需要知道实现组件DLL的位置,必须自己来加载组件的CreateInstance函数来获得组件的指针.在书中第一篇就曾经提到过:COM组件可以透明地在网络上(或本地)被重新分配位置,而不会影响本地客户程序.所以,由客户端来调用DLL并不是什么好主意.必须有一种更好的办法让组件的实现更透明,更灵活!
于是,就引入了类厂的概念.什么是类厂,类厂也是一个接口,它的职责是帮我们创造组件的对象.并返回给客户程序一个接口的指针.每个组件都必须有一个与之相关的类厂,这个类厂知道怎么样创建组件.当客户请求一个组件对象的实例时,实际上这个请求交给了类厂,由类厂创建组件实例,然后把实例指针交给客户程序。阅读全文
posted @ 2007-02-13 10:47 shipfi 阅读(1208) | 评论 (1) 编辑
摘要: 1.COM中的HRESULT:
2.COM中的GUID:
3.组件在注册表中的结构:
4.ProgID和CLSID之间的转换 / CLSID和字符串的转换:
5.Dll的注册.
6.COM库函数
7.在组件中如果分配内存,在客户中怎么释放?阅读全文
posted @ 2007-02-12 16:56 shipfi 阅读(1175) | 评论 (0) 编辑
摘要: 上一篇文章里,在一个CPP文件中实现了组件IX,IY,及组件CA,以及在客户端对接口的查询,但其还不是一个COM,COM的许多特性还没有被展现出来.比如,用动态链接库实现,没有这个我就不能根据需要随意的加载和卸载组件,组件无法复用等功能。
以下这篇笔记将详细的介绍如何用动态链接库去实现COM组件。阅读全文
posted @ 2007-02-12 15:02 shipfi 阅读(570) | 评论 (0) 编辑
摘要: (注明,这两篇都是转贴。文章不错,怕以后找不到。故转之)
COM——到底是什么?——COM标准的要点介绍,它被设计用来解决什么问题?
基本元素的定义——COM术语以及这些术语的含义。
使用和处理COM对象——如何创建、使用和销毁COM对象。
基本接口——描述IUnknown基本接口及其方法。
掌握串的处理——在COM代码中如何处理串。
应用COM技术——例子代码,举例说明本文所讨论的所有概念。
处理HRESULT——HRESULT类型描述,如何监测错误及成功代码。阅读全文
posted @ 2007-02-12 12:18 shipfi 阅读(255) | 评论 (0) 编辑
摘要: 走马观花看COM服务器——描述COM服务器的基本要求。
服务器生命其管理——描述COM服务器如何控制加载时间。
实现接口,从IUnknown开始——展示如何用C++类编写一个接口实现并描述IUnknown之方法的目的。
深入CoCreateInstance()——探究CoCreateInstance()的调用机理。
COM服务器的注册——描述完成服务器注册所需要的注册表入口。
创建COM对象——类工厂——描述创建客户端要使用的COM对象的过程。
一个定制接口的例子——例子代码示范了上述概念。
一个使用服务器的客户端——举例说明一个简单的客户端应用程序,用它来测试COM服务器。
其它内容——有关源代码和调试的注释。阅读全文
posted @ 2007-02-12 12:12 shipfi 阅读(186) | 评论 (0) 编辑
摘要:   学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。
阅读全文
posted @ 2007-02-07 17:32 shipfi 阅读(85) | 评论 (0) 编辑
摘要: 这是今天在读《COM技术内幕》这本书时模拟COM而写的一段代码,包括了基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用。
这段代码知识点涵盖了此书的前四章,还没有实现的是,把组件,接口放到动态链接库去实现。

这本书的第五章就讲到了动态链接库库对COM组件的封装。先在此把前面的代码总结,并保存下来。阅读全文
posted @ 2007-02-07 17:30 shipfi 阅读(350) | 评论 (1) 编辑
摘要: 重拾WinAPI,在设计Windows程序时,以求知其然,知其所以然。
这一章简单记叙了Win API之GDI函数。阅读全文
posted @ 2007-01-10 22:32 shipfi 阅读(208) | 评论 (0) 编辑
摘要: 一个键盘Hook的实例。阅读全文
posted @ 2007-01-04 21:31 shipfi 阅读(461) | 评论 (0) 编辑
摘要: 内容涉及Windows复合文件的内容,包括IStorage接口,IStream接口,STATSTG等阅读全文
posted @ 2007-01-04 20:41 shipfi 阅读(1269) | 评论 (0) 编辑
摘要: 在Windows中,虚拟内存技术使一个进程内的代码访问另一个进程内的代码变得不那么容易。当然,这个不容易带来了很强的健壮性。因为即使本进程由于内存改写错误,导致程序崩溃,但另一个进程依然相当安全。

今天讲的就是:打破进程的边界,让我们的代码到其它进程的老家去逛逛。
阅读全文
posted @ 2006-12-26 22:14 shipfi 阅读(238) | 评论 (0) 编辑
摘要: 学而时习之,不亦悦乎!这篇文章一些这两个月在学VC过程中的笔记,因为学的时候当时记得,过后特容易忘,所以保留下来,以后开发时用得着!阅读全文
posted @ 2006-12-22 22:42 shipfi 阅读(1767) | 评论 (0) 编辑
摘要: 今天下午写的,关于列举出系统内所有运行的进程信息和模块信息,还不完全,有待加工阅读全文
posted @ 2006-07-29 16:10 shipfi 阅读(349) | 评论 (1) 编辑
摘要: 今天在自己的FC4机器上安装FTP服务器,让他人通过FTP共享资料.

在网上查阅了一翻,比较常用的FTP服务器有:Wu-FTP, ProFTP, VSFTP.

我选中了VSFTP,不为别的,因为它叫Very Secure嘛.它的设计本来就是以安全性来考虑的.

去主站点下了VSFTP的2.04版本,不大,一百多KB. 下载地址是:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.4.tar.gz

下完了之后make,在make install之前根做N步工作.
1)需要添加nobody用户 #useradd nobody
2)如果make没产生/usr/share/empty目录的话,建立该目录, #mkdir /usr/share/empty
3)如果FTP需要匿名(anonymous)用户的话,需要建立ftp这个用户,并指定其HOME目录为/var/ftp #usera阅读全文
posted @ 2006-06-14 17:31 shipfi 阅读(375) | 评论 (0) 编辑
posted @ 2006-06-12 17:14 shipfi 阅读(165) | 评论 (0) 编辑
摘要: 这两天听说又有新项目了,听头的大概意思是,在语音网关中新加入一功能,机器开启时,把一准备好的xml数据发送到Intel公司的Viiv服务器中去,然后,接收并分析服务器发送回来的xml数据。
初步分析,给我的时间是:一个半月,另外,具体详细需求:不明,摸着石头过河。

当时只有一个感觉:Are you crazy?

其一,Viiv的技术刚刚推出,网上能用的资料少得可怜.大部分都是介绍Viiv的.而非如何与Viiv交互的,仅有的资料就要靠一篇十来页的PDF文档.
其二,由于是嵌入式linux,机种本身不带有xml的parser,需要找一个c语言编写的xml parser集成到linux中.
其三,xml数据是从机器的什么地方收集,发送回的xml数据经分析后要写入哪地方去.都没有说明.


今天一天时间,找了一个C的xml parser,名称叫libxml,用了一下,感觉比较好用.最主要的是document挺全的,如果要下此库,可以到它的主页:http阅读全文
posted @ 2006-06-08 17:27 shipfi 阅读(205) | 评论 (0) 编辑
摘要: 也就是说,管道就是一部份共享内存以便进程可以用来相互通信,创建了Pipe内核对象的进程就是一个Pipe Server, 当另一个进程与这个进程创建的Pipe Server连接时,就称为Pipe Client.当一个进程往Piple当中写入信息时,另一个进程便可以从这个Pipe读出这个信息。
Pipe分为两种:一个是anonymous pipes(末名命Pipe),另一个是named pipes(命名Pipe), anonymous pipes所需要的开销要比named pipes要来得少,但是缺点是提供的功能也少。
pipe这个术语在这里的意思是指:作为一个提供信息的管道,从概念上来理解,Pipe包含了两个端,一端可以允许进程写入,另一端允许进程读出。两个端都可以让进程读或者写。
阅读全文
posted @ 2006-05-27 13:49 shipfi 阅读(1285) | 评论 (1) 编辑
摘要: ProjectCode里面的一篇写COM的文章。转载至此。阅读全文
posted @ 2006-05-24 15:28 shipfi 阅读(289) | 评论 (0) 编辑
摘要: 总是觉得VC中的类型纷繁复杂,扑朔迷离。因为有了Unicode,因为C、C++类型相互转化如此不同。保存char的不止char一种,还可以用short,unsigned short,int 等来保存。单单就字符串就有N多种类型,其它类型也不止一个。再加上C++中本来就没有正式的string类型,所以,平常就会碰到很多种相同意思,但不同类型,或相同类型,不同写法的Type.

如何在他们之间相互转化,也是在学习VC中避免不了的一个问题。

阅读全文
posted @ 2006-05-16 16:06 shipfi 阅读(3191) | 评论 (3) 编辑
摘要: 今天项目中碰到的问题,关于注册表的操作。
包括:对注册表打开(RegOpenKeyEx),对注册表查询(RegQueryValueEx),对注册表遍历(RegEnumValue),获取指定键值的相关信息(RegQueryInfoKey),对键下面的子键进行遍历(RegEnumKeyEx)......Etc阅读全文
posted @ 2006-05-16 12:44 shipfi 阅读(330) | 评论 (1) 编辑
posted @ 2006-04-10 13:39 shipfi 阅读(106) | 评论 (0) 编辑
posted @ 2006-03-21 17:26 shipfi 阅读(33) | 评论 (0) 编辑
posted @ 2005-11-09 11:25 shipfi 阅读(50) | 评论 (0) 编辑
posted @ 2005-09-25 16:11 shipfi 阅读(120) | 评论 (0) 编辑
摘要: Attributes是一种新的用来描述信息的类型,我们可以用Attributes来定义设计时或者运行时的信息。对于设计时,我们可以提供帮助文件,文档等信息,对于运行时,我们可以提供类的域,并用XML来描述。我们还可以用Attributes来设计“自描述” 的组件类型。阅读全文
posted @ 2005-09-22 10:01 shipfi 阅读(144) | 评论 (0) 编辑
摘要: 关于线程池的概念以及使用阅读全文
posted @ 2005-09-04 17:04 shipfi 阅读(2319) | 评论 (1) 编辑
摘要: MSDN中讲Thread Pooling的一篇文章。阅读全文
posted @ 2005-09-02 14:47 shipfi 阅读(505) | 评论 (0) 编辑
摘要:
1.等待定时器内核对象
2.信标对象
3.互斥对象阅读全文
posted @ 2005-09-02 10:56 shipfi 阅读(292) | 评论 (0) 编辑
摘要:
1.线程间的互锁 2.关键代码段 3.关于使用互锁与关键代码段的弊端与优点
4.内核对象实施同步 5.等待函数 WaitForSingleObject与WaitForMultipleObject
6.事件内核对象阅读全文
posted @ 2005-08-31 17:16 shipfi 阅读(2951) | 评论 (2) 编辑
摘要:
1.再议 .NET 纯粹性神话
2.ASP.NET Web 页面生命中的一天
3.单元测试
4.使用线程
5. 掌握 ASP.NET 之路:自定义实体类简介阅读全文
posted @ 2005-08-30 10:42 shipfi 阅读(101) | 评论 (0) 编辑
摘要: 一,编写线程函数

二,创建一个线程内核对象

三,终止线程运行

四,线程的一些性质

五,对自己的ID

六,线程的调度

七,暂停线程

八,线程的睡眠

九,转换线程

十,返回线程的运行时间阅读全文
posted @ 2005-08-29 14:53 shipfi 阅读(348) | 评论 (0) 编辑
摘要: 1.创建进程

2.终止进程

3.关于子进程阅读全文
posted @ 2005-08-25 11:12 shipfi 阅读(576) | 评论 (0) 编辑
摘要: 1.内核对象如何在进程边界共享?

2.何为进程,进程有何特性?阅读全文
posted @ 2005-08-24 11:04 shipfi 阅读(529) | 评论 (1) 编辑
摘要:
由于.net Framework中很多地方需要用到以前Win32中的一些知识点,不了解其中的来胧去脉学习起来会比较吃力,于是准备用点时间补一下Windows 核心方面的知识点,参考书本是经典的.学完后,可以有这个基础去研究.Net中的<.Net 框架程序设计>这本经典.

从第三章内核对象开始....

1.什么是内核对象,有何特性?

2. 内核对象的安全性阅读全文
posted @ 2005-08-23 15:19 shipfi 阅读(348) | 评论 (1) 编辑
摘要: Item 1 - Always Use Properties Instead of Accessible Data Members.

使用属性的理由:

1。可以对赋值做校验、或者额外的处理。
2。可以做线程同步。
3。可以使用虚属性、或者抽象属性。
4。可以将属性置于interface中
5。可以提供get-only或者set-only版本;甚至可以给读、写以不同的访问权限(C# 2.0支持)阅读全文
posted @ 2005-06-28 11:10 shipfi 阅读(146) | 评论 (0) 编辑
摘要: 来源:霍炬 原创-IT

到底什么是 O/R Mapper 为什么要翻译这个?

一次和一个群里面的朋友聊天,有人说最近发现了新的设计数据库方法,就是把数据库的列和对象属性一一对应,这样设计很方便。我说寒,那有这么容易的,实际情况复杂去了,怎么能一一对应。

然后老兄大骂了我不懂,然后找来一篇文章作论据,我打开看看,是讲O/R Mapper的。我寒的不行,没敢再多少话。

印象中始终缺乏好的关于O/R Mapper的中文文章,所以造成很多人概念不清。O/R Mapper到底是什么?

Steve Eichert这一系列文章讲得不错。打算跟着翻译一下,给自己增加点认识。当然也希望对更多的人有所帮助。
阅读全文
posted @ 2005-06-17 17:36 shipfi 阅读(304) | 评论 (0) 编辑
摘要: “人类社会,蒙昧百万年,狩猎数万年,农牧几千年,工商几百年”。今天,正经历着一场前所未有的由工业社会向信息社会的巨变。

  软件,正处于信息技术的核心位置。软件产业,已成为信息产业中独立的支柱产业。这一切的完成,只用了短短的几十年。软件业的发展还造就了一个个令人眩目的“童话”。20年前的一个毛头小子,如今已成为世界首富。昨天还一名不文的穷学生,竟在一夜之间就变成百万富翁。

  然而在这辉煌的另一面,却也有着令人赧颜的尴尬。那就是几十年来一直折磨着软件业界,而且在可以看见的将来还要继续折磨下去的“软件危机”。一位饱受折磨的开发人员如是说: “用户不断催促,可系统提交日期一拖再拖,项目经理对此一筹莫展,束手无策。开发活动如同一个黑箱子,资金扔进去了,人员扔进去了,设备资源扔进去了,但不知道什么时候会出来结果,更没有把握出来的东西是否是用户所要的东西...” 阅读全文
posted @ 2005-05-31 13:47 shipfi 阅读(333) | 评论 (0) 编辑
摘要: 一直对于这个知识点不明就理,只知道是外观层,业务逻缉层,数据层分离开来的一种实现方法,下午在CSDN上对这个知识点进行了一下搜索,好多贴子都贴出了对于三层的理解,把其中的一此摘录下来,好好琢磨。阅读全文
posted @ 2005-05-22 17:21 shipfi 阅读(593) | 评论 (1) 编辑
摘要: Q:如何在XMl文档中某个节点位置加入一些节点,不是整个文件写

Q:c#开发winform,怎么去执行一个外部的exe文件?

Q:我想在两个程序间交换数据,该如何实现?

阅读全文
posted @ 2005-05-17 09:53 shipfi 阅读(311) | 评论 (0) 编辑
摘要: 微软的.Net框架为我们提供了基于流的I/O操作方式,这样就大大简化了开发者的工作。因为我们可以对一系列的通用对象进行操作,而不必关心该I/O操作是和本机的文件有关还是和网络中的数据有关。.Net框架主要为我们提供了一个System.IO命名空间,该命名空间基本包含了所有和I/O操作相关的类。

本文将向大家介绍一些基本的文件操作方法,包括对文件系统中的目录和文件的操作,还有就是文件的读写操作等。通过运用System.IO.DirectoryInfo类和System.IO.FileInfo类我们可以轻易的完成与目录和文件相关的操作,而通过运用System.IO.StreamReader类和System.IO.StreamWriter类我们可以方便的完成与文件的读写相关的操作。 阅读全文
posted @ 2005-05-14 08:43 shipfi 阅读(358) | 评论 (0) 编辑
摘要: 1.在.net中轻松掌握窗体间的数据交互:
http://www.zahui.com/html/14/34053.htm

2.Visual C#中的多线程编程
http://www.zahui.com/html/14/34061.htm

3.基于.Net Framework的N层分布式应用开发
http://www.zahui.com/html/14/42040.htm阅读全文
posted @ 2005-05-13 15:23 shipfi 阅读(193) | 评论 (0) 编辑
posted @ 2005-05-13 10:08 shipfi 阅读(179) | 评论 (0) 编辑
posted @ 2005-04-21 23:45 shipfi 阅读(257) | 评论 (1) 编辑