11 2010 档案

摘要:在PostgreSQL中创建如下表并插入如下数据CREATE TABLE "TTT" ( ID varchar(32) PRIMARY KEY NOT NULL, NAME varchar(128) NOT NULL);CREATE UNIQUE INDEX TTT_NAME_IDX ON "TTT"(NAME);insert into "TTT" values('1' , 'A');insert into "TTT" values('2' , 'a' 阅读全文
posted @ 2010-11-29 15:25 程序员天下 阅读(482) 评论(0) 推荐(0) 编辑
摘要:本文结合大量实例阐述如何编写一个shell脚本。 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在... 阅读全文
posted @ 2010-11-26 19:07 程序员天下 阅读(410) 评论(0) 推荐(0) 编辑
摘要:本篇文章主要教你如何使用Vim分屏功能分屏启动Vim使用大写的o参数来上下分屏。vim -on file1 file2 ...使用小写的O参数来左右分屏。vim -On file1 file2 ...注释:n是数字,表示分成几个屏。关闭分屏关闭当前窗口。Ctrl+W c关闭当前窗口,如果只剩最后一个了,则退出Vim。Ctrl+W q分屏上下分割当前打开的文件。Ctrl+W s上下分割,并打开一个新的文件。:sp filename左右分割当前打开的文件。Ctrl+W v左右分割,并打开一个新的文件。:vsp filename移动光标Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先 阅读全文
posted @ 2010-11-25 18:31 程序员天下 阅读(144) 评论(0) 推荐(0) 编辑
摘要:Linux操作系统下的多线程编程详细解析----条件变量1.初始化条件变量pthread_cond_init#include <pthread.h>int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的属性将由cattr中的属性值来决定。调用 pthread_cond_init函数时,参数cattr为空指针等价于cattr中的属性为缺省属性,只是前者 阅读全文
posted @ 2010-11-24 11:30 程序员天下 阅读(402) 评论(0) 推荐(0) 编辑
摘要:C++纯虚函数 virtual =0参考:http://hi.baidu.com/cunlin/blog/item/d82b160102e0e4037aec2ccb.html(百度空间)=========================================================================C++中的纯虚函数在C++中的一种函数申明被称之为:纯虚函数(pure virtual function).它的申明格式如下:class CShape{public: virtual void Show()=0;};注意红色部分,在普通的虚函数后面加上"=0 阅读全文
posted @ 2010-11-24 09:51 程序员天下 阅读(838) 评论(0) 推荐(0) 编辑
摘要:通常我们用spring的时候注入的属性都是指定的类实例或者List或Array,对于这一类的应用通常我们都是使用spring默认的根据bean的id或者name来在容器里查找,但是有些时候在一些特殊应用中对于一个bean的某个属性并不是固定的,此时就可以用到spring的另外一种注入方式就是autowire="byType"。如下例子:一个接口类和几个实现类MyIdProvider.javapublic interface MyIdProvider { String getId();}class MyIdProviderImpl1 implements MyIdProvid 阅读全文
posted @ 2010-11-24 08:54 程序员天下 阅读(600) 评论(0) 推荐(0) 编辑
摘要:在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为:template<classT>......在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了:template<typenameT>......在模 阅读全文
posted @ 2010-11-23 20:57 程序员天下 阅读(230) 评论(0) 推荐(0) 编辑
摘要:在C++中,有三种类型的循环语句:for,while,和do...while,但是在一般应用中作循环时,我们可能用for和while要多一些,do...while相对不受重视。但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1.do...while(0)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:version1boolExecute(){//分配资源int*p=newint;boolbOk(true);// 阅读全文
posted @ 2010-11-23 17:15 程序员天下 阅读(195) 评论(0) 推荐(0) 编辑
摘要:很棒新特性:图表:Most people have used Ext JS 3’s Flash-based charting package. You’ll probably know that it’s good at the basics but is really hard to customize. For Ext JS 4.0 we’ve created a brand new charting package that is powered purely by JavaScript. We’ve united the phenomenal talents of Dmitry Bar 阅读全文
posted @ 2010-11-23 13:22 程序员天下 阅读(153) 评论(0) 推荐(0) 编辑
摘要:安装包$ sudo add-apt-repository ppa:rabbitvcs$ sudo aptitude update$ sudo apt-get install rabbitvcs-core rabbitvcs-nautilus重新启动nautilus$ nautilus -q 阅读全文
posted @ 2010-11-22 13:16 程序员天下 阅读(156) 评论(0) 推荐(0) 编辑
摘要:C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、const_cast。3.1 static_cast用法: 阅读全文
posted @ 2010-11-19 13:24 程序员天下 阅读(149) 评论(0) 推荐(0) 编辑
摘要:一般的,vim打开中文文件时会出现乱码,原因比较复杂,不罗嗦了。直接讲解决办法 set fileencoding=gb18030 set fileencodings=utf-8,gb18030,utf-16,big5想看这样设置的原因吗?请继续。下文在网络中广泛流传vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set 阅读全文
posted @ 2010-11-17 20:03 程序员天下 阅读(231) 评论(0) 推荐(0) 编辑
摘要:在用spring管理我们的类的时候有时候希望有些属性值是来源于一些配置文件,系统属性,或者一些方法调用的结果,对于前两种使用方式可以使用spring的PropertyPlaceholderConfigurer类来注入,这些内容已经在前面的文章中说过,这里就不在重复了。这里就针对第三种情况做一些说明,其实在spring中是提供了对这种需求的解决方案的,那就是使用org.springframework.beans.factory.config.MethodInvokingFactoryBean类来生成需要注入的bean的属性,下面是一个例子MyBean.java一个普通的POJO类import o 阅读全文
posted @ 2010-11-16 08:15 程序员天下 阅读(363) 评论(0) 推荐(0) 编辑
摘要:1. 添加ibus ppa源sudo add-apt-repository ppa:shawn-p-huang/ppa2. 更新sudo apt-get update && sudo apt-get dist-upgrade 阅读全文
posted @ 2010-11-15 14:01 程序员天下 阅读(162) 评论(0) 推荐(0) 编辑
摘要:在Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。用户可以只将信号发送给用户自己的进程,也可以以root身份运行从而将信号发送给任意一进程。Source:#include<stdio.h>#include<signal.h>#include<unistd.h>#include<stdlib.h>void when_alarm();void when_sigint();void when_sigchld(int);void whe 阅读全文
posted @ 2010-11-12 10:38 程序员天下 阅读(295) 评论(0) 推荐(0) 编辑
摘要:一、一般用法我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.用法:#include<cstdio>#include<climits>using namespace std;#define STR(s) #s#define CONS(a,b) int(a##e##b)int main(){ printf(STR(vck)); // 输出字符串"vck" printf("%d", CONS(2,3)); // 2e3 输出:2000 return 0;}二、当宏参数是另一个宏的时候需要注意的是凡宏定义里有用'# 阅读全文
posted @ 2010-11-12 09:43 程序员天下 阅读(237) 评论(0) 推荐(0) 编辑
摘要:指针数组与指向指针的指针http://wlkc.gdqy.edu.cn/jpkc/portal/blob?key=173314指针数组和数组指针的区别http://allew.blog.163.com/blog/static/3374389720094148449239/指针数组[组图]http://school.cnd8.com/c/jiaocheng/9212.htm函数指针和指针函数http://lionwq.spaces.eepw.com.cn/articles/article/item/18258========================================sour 阅读全文
posted @ 2010-11-11 18:31 程序员天下 阅读(191) 评论(0) 推荐(0) 编辑
摘要:TCP连接断开的时候调用close socket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下:struct linger { int l_onoff; int l_linger; }; 有三种组合方式:第一种 l_onoff = 0; l_linger忽略这种方式下,就是在closesocket的时候立刻返回,底层会将未发送完的数据发送完成后再释放资源,也就是优雅的退出.第二种 l_onoff非零 l_linger = 0;这种方式下,在调用close s... 阅读全文
posted @ 2010-11-11 17:16 程序员天下 阅读(311) 评论(0) 推荐(0) 编辑
摘要:服务器关了正在连接的客户端socket_fd,客户端做出的反应过程当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN如: signal(SIGPIPE,SIG_IGN);这时SIGPIPE交给了系统处理。 服务器采用了fork的话,要收集垃圾进程,防止... 阅读全文
posted @ 2010-11-11 17:08 程序员天下 阅读(253) 评论(0) 推荐(0) 编辑
摘要:VIM REFERENCE MANUAL by Bram Moolenaarhttp://vimcdoc.sourceforge.net/doc/quickref.html#Q_viVIM 用户手册 - by Bram Moolenaarhttp://vimcdoc.sourceforge.net/doc/usr_03.html#03.8 阅读全文
posted @ 2010-11-11 15:27 程序员天下 阅读(99) 评论(0) 推荐(0) 编辑
摘要:Source:#include <iostream> #include <list> #include <numeric> #include <algorithm> using namespace std; typedef list<int> LISTINT; //创建一个list容器的实例LISTINTtypedef list<int> LISTCHAR; //创建一个list容器的实例LISTCHARint main(void) { LISTINT listOne; //用LISTINT创建一个名为listOne的li 阅读全文
posted @ 2010-11-09 15:08 程序员天下 阅读(165) 评论(0) 推荐(0) 编辑
摘要:http://www.pps.tv/about/6/364.html安装PPS Linux版本前需要先安装以下辅助软件: * QT库, 4.4.0及以上版本 * libFuse库, 2.7.2及以上版本 * Mplayer, 1.0rc2及以上版本 * MPlayer视频解码器: MPlayer Essential Codec Pack(http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2) 推荐使用apt-get方式安装: sudo apt-get install libqt4-core libq 阅读全文
posted @ 2010-11-08 08:37 程序员天下 阅读(183) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示