自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

gpengtao的专栏

全世界有那么多的人在琢磨计算机,你能在什么地方比其他人都更进一步呢。

  • 博客(30)
  • 收藏
  • 关注

转载 利用AbstractRoutingDataSource实现动态数据源切换

转载自:http://dsbjoe.iteye.com/blog/1176779最近要为公司多个游戏做类似的统计功能,考虑到模块的复用性,决定做个动态数据源,根据不同的游戏参数切换不同的datasource。网上查了下,spring2.0以后增加了AbstractRoutingDataSource这个东西。下面是实现方法 首先看下AbstractRout

2014-02-07 09:40:51 1067

转载 JNDI 是什么

转载自:http://blog.csdn.net/zhaosg198312/article/details/3979435JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI到底起什么作用?

2014-02-07 09:13:10 982 1

原创 验证码 Servlet

编写一个验证码Servlet:生成图像,将值存入JSP的session。package com.gpengtao.servlet;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.IOExcept

2012-12-22 08:46:02 834

原创 java 实现关机工具,托盘图标

以下是自己使用swing编写的windows关机工具,实现了托盘图标。package com.gpengtao;import java.awt.AWTException;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.MenuItem;import java.awt.Popu

2012-12-08 15:58:01 1826

原创 进程只运行一个实例

守护进程往往需要设置使其只运行一个实例,这里展示文件锁的方式实现:1.使用fcntl()函数设置文件锁#include #include #include #include #include #include #include int main(){ int fd; int res; struct flock lock; fd = o

2012-09-09 20:45:01 1395

原创 ioctl()函数获取本机IP、MAC

#include int ioctl(int d, int request, ...);/* Socket configuration controls. */#define SIOCGIFADDR 0x8915 /* get PA address */#define SIOCSIFADDR 0x8916 /* set PA address */#define SIOCGI

2012-08-30 18:29:22 16631

原创 线程与信号

总结:signal()设置对某种信号的处理方式,只能有一种处理方式,即设置进程、线程的信号handler,对进程、线程都有效。pthread_kill()可以向线程发送信号。pthread_sigmask()设置线程的阻塞信号集,但是仅仅对该线程有效。kill()向进程发送信号,由哪个线程处理该信号是未知的。可能发生的情况是,进程本身屏蔽了该信号,而某个线程没有屏蔽改信号,进而该线

2012-08-29 17:58:06 3388 1

原创 linux守护进程 编写要点

守护进程(Daemon)是运行在后台的一种特殊进程,脱离于终端。它在执行过程中产生的信息也不会在终端上显示。守护进程周期性地执行某种任务或等待处理某些事件的发生。Linux的大多数服务器就是用守护进程实现的。编写要点:(最后有完整示例)1.屏蔽一些有关终端操作的信号。这是为了防止在守护进程还没有正常运行起来前,受到终端干扰退出或者挂起。代码:signal(SIGTTOU, SIG_IG

2012-08-21 11:15:41 2461

原创 linux 睡眠函数——sleep(),usleep()

#include unsigned int sleep(unsigned int seconds);//睡眠秒返回值:成功返回0,或者返回剩余的要睡眠的秒数(被signal中断后).int usleep(useconds_t usec);//睡眠微秒返回值:成功返回0,出错返回-1.useconds_t == unsigned int秒的进制:1秒 (s)= 1

2012-08-20 17:02:35 51340

原创 linux 信号 意义

信号 默认动作 信号产生的原因SIGHUP                   终止进程                        终端线路挂断SIGQUIT                 建立CORE文件                 终止进程,并且生成core文件SIGILL

2012-08-17 22:27:12 1505

原创 linux进程状态

1.R: TASK_RUNNING,正在运行或者处于就绪状态很多操作系统教科书将正在CPU上执行的进程定义为RUNNING状态、而将可执行但是尚未被调度执行的进程定义为READY状态,这两种状态在linux下统一为 TASK_RUNNING状态。例子:ps -aux //会看到ps这个程序命令的运行状态是R,+一会再说2.S :TASK_INTERRUPTIBLE,可中断的睡眠状态进程因为

2012-08-13 01:12:15 1634

原创 exit 和 _exit

函数声明:#include void exit(int status);void _Exit(int status);//等同于_exit #include void _exit(int status);eixt和_exit的比较:exit:1.退出程序;2.处理所有I/O缓冲区,然后关闭文件;3.调用atexit、on_exit注册的函数。

2012-08-12 22:07:07 1337

原创 pthread_attr_init 线程属性

我们一般创建线程是这样 pthread_t tid;pthread_create(&tid, NULL, func, NULL);第二个参数是线程属性设置,一般设置为了NULL,但是可以通过系统API进一步设置第二个参数,细化创建的线程的属性。 大致步骤为:pthread_attr_t attr;pthread_attr_init(&attr);pthread_at

2012-07-27 11:33:28 9130 1

原创 Windows下命令行编译程序

以我的机子为例,安装的是VC2010,目录是:D:\Program Files (x86)\Microsoft Visual Studio 10.0。cl.exe是VC控制 Microsoft C和C++编译器与链接器的32位工具,在目录 D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin 下面。cl就相当于linux的gc

2012-07-21 00:07:37 1781

原创 这CSDN博客内容的格式怎么设置?求指导

我的代码粘上去之后各种看着不舒服,比如一个函数的参数很长,一行容不下,我换行后就是对不齐,tab键是不是显示不出来,看着乱乱的,可读性一下子不行了!所以请教CSDN的博客怎么排版啊?

2012-07-20 18:28:48 1003

原创 Win32多线程编程 总结

DWORD = unsigned longHANDLE = void *LPVOID = void *WINAPI = __stdcall//线程函数的原型DWORD WINAPI ThreadFunc(LPVOID);//创建线程:HANDLE CreateThread(    LPSECURITY_ATTRIBUTES lpThreadAttri

2012-07-20 14:08:09 1654

原创 getc,getchar,getch,getche

Windows平台下:#include int getc(FILE *_File);    //从文件中读取一个字符,文件位置指示器后移一个int getchar(void);          //从stdin读取一个字符,回显(就是屏幕上显示输入的字符),等到输入的回车才结束,只取输入的第一个字符#include int getch(void);

2012-07-11 18:12:46 1113

原创 fork,vfork,system

1.fork()函数#includepid_t fork(void);创建一个子进程。正确返回:父进程中返回子进程的进程号;子进程中返回0;(返回两次,父进程和子进程中各返回一次)错误返回:-1;(父进程中返回)2.vfork()函数#includepid_t vfork(void);创建一个子进程,阻塞父进程。vfork创建新进程的主要目的在于用exec函数执

2012-07-11 14:04:17 3277 2

原创 linux 信号signal

一.信号的分类:1.kill–l //列举所以信号2.不可忽略信号: SIGKILL,SIGSTOP。二.信号的发送:kill()、raise()、 sigqueue()、alarm()、setitimer()以及abort()1.  kill#include #include int kill(pid_t pid, int signo);向某个进程发送信号,参数为进程id和信号的

2012-07-09 10:13:18 1555

原创 数据库范式(1NF 2NF 3NF BCNF)

来自:http://jacki6.iteye.com/blog/774866数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入( insert )、删除( delete )和更新( update )操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。范式说明 1.1 第一范式(

2012-07-02 17:50:10 899

原创 getopt()函数用法

getopt() 函数原型:getopt() 函数,以及配合其使用的全局变量#include int getopt(int argc, char * const argv[], const char*optstring);extern char *optarg; //选项的参数指针extern int optind;        //下一次调用getopt的时,从opti

2012-05-16 10:49:50 1068

原创 mq_open()函数的 attr 参数错误问题

man mq_open显示:mqd_t mq_open(const char *name, int oflag);mqd_t mq_open(const char *name, int oflag, mode_t mode,struct mq_attr *attr);可见,该函数的用法有两种,2个或者4个参数,然而,第二种用法中指定的参数 struct mq_attr *attr

2012-05-16 10:02:39 6180 2

原创 Linux errno 错误对照表

errno 在 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的  errno-base.h 和 errno.h,分别定义了 1-34 、35-132 的错误定义。strerror() 函数依据 errno 值返回错误描述字符串,下面程序打印对照表:#include #include #include int main(){

2012-05-10 11:41:13 208748 4

原创 如何把mo3格式的文件转换成mp3格式

玩游戏“毛毛球”时里面有个很好听的音乐,但是mo3格式,我的PC上能播发它的只有快播(快播的播放功能还是很强大的啊),想把它转换成mp3等一般的音频格式,找了半天终于找到实现方式,方法源自http://www.un4seen.com/ 论坛。首先说明mo3是什么格式:(来自百度百科)MO3是一种由un4seen开发的"MOD"音乐格式(像IT, XM, S3M, MTM, MOD等),但是

2012-04-20 17:53:21 8456

原创 atoi函数实现

公司笔试喜欢让写这个函数,这里实现一下,欢迎指正:int my_atoi(const char *str){ assert(str != NULL); int flag = 1; int result = 0; while(*str == ' ' || *str == '\n' || *str == '\t') { ++str; } if(*str == '-') {

2012-04-18 17:12:58 2520 4

原创 strcpy函数的实现

大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是:char *my_strcpy(char *dst,const char *src){ assert(dst != NULL); assert(src != NULL); char *ret = dst; while((* dst++ = * src++) != '\0') ; return

2012-04-15 23:23:32 100594 28

原创 Ackerman函数

维基百科:阿克曼函数http://zh.wikipedia.org/wiki/%E9%98%BF%E5%85%8B%E6%9B%BC%E5%87%BD%E6%95%B8阿克曼函数是非原始递归函数的例子;它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。1920年代后期,数学家大卫·希尔伯特的学生Gabriel

2012-04-08 20:39:26 24052 6

原创 重建二叉树

二叉树的节点为:struct BiTNode{ TElemType data; struct BiTNode *leftchild,*rightchild;};创建节点统一由Buynode() 函数完成:BiTNode * Buynode(){ BiTNode *s=new BiTNode(); if(s == NULL) { exit(1); }

2012-03-13 09:42:45 931

原创 二分查找 字符串数组

一个有序的字符串数组ar,如字典序,找到其中值等于字符串v的元素的序号,如果有多个满足条件,则返回序号最大的。#includeusing namespace std;int BinarySearch(char **ar,int begin,int end,char *v){ int result=-1; while(begin <= end) { int mid=

2012-03-01 10:27:10 6290 1

原创 字符串循环移位包含

给定两个字符串s1和s2,要求判定s2能否可以被s1循环移位得到的字符串包含。#include using namespace std;bool fun(char *s1,char *s2){ int n=strlen(s1); int m=strlen(s2); for(int i=0,j=0;i<n;++i,j=0) { int k=i; while(s1[k%n

2012-02-28 20:03:39 997 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除