12 2010 档案

摘要:实现代码实例程序代码:#include <stdio.h>#include <stdlib.h>#include <sys/types.h>/***** cplusplus *****/#if 0#include <iostream> using namespace std;#endif// 得到指定地址上的一个字节或字#define MEM_B(x) (*((byte *)(x))) #define MEM_W(x) (*((word *)(x)))// 得到一个field在结构体(struct)中的偏移量#define FPOS(type, 阅读全文
posted @ 2010-12-28 17:58 程序员天下 阅读(213) 评论(0) 推荐(0) 编辑
摘要:今天在升级Hudson从1.343到1.389,更新war包并重启tomcat之后,访问任何页面总是出现以下异常Dec 28, 2010 9:17:01 AM hudson.ExpressionFactory2$JexlExpression evaluateWARNING: Caught exception evaluating: h.isUnitTest. Reason: java.lang.reflect.InvocationTargetExceptionjava.lang.reflect.InvocationTargetException at sun.reflect.Generated 阅读全文
posted @ 2010-12-28 09:31 程序员天下 阅读(424) 评论(0) 推荐(0) 编辑
摘要:知识背景:210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英语叫做binary data。(其实binary是二进制的意思)详细介绍,请参考:网络字节序与主机字节序的转换问题所在:如何在字符串形式的IP和整数形式的IP之间转换呢?转换函数:int inet_aton(const char *cp, struct in_addr *inp);in_addr_t inet_addr(const ch 阅读全文
posted @ 2010-12-27 15:17 程序员天下 阅读(932) 评论(0) 推荐(0) 编辑
摘要:名称:kill使用权限:所有使用者使用方式:kill [ -s signal | -p ] [ -a ] pid ...kill -l [ signal ]说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号把计-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l-p : 印出 pid , 并不送出信号-l (signal) : 列出所有可用的信号名称范例:将 p 阅读全文
posted @ 2010-12-24 10:48 程序员天下 阅读(622) 评论(0) 推荐(0) 编辑
摘要:今天看到一篇关于怎样避免使用switch而用enum的文章,看了以后感觉作者想法挺好的,这里共享出来。原文地址:Avoid switch! Useenum!Recently I was about to refactor some code Crap4j pointed me to. When I realized most of that code was some kind of switch-case or if-else-cascade, I remembered Daniel´s post and decided to obey those four rules.This 阅读全文
posted @ 2010-12-22 08:17 程序员天下 阅读(149) 评论(0) 推荐(0) 编辑
摘要:原文地址:An advent of unconditional qualitycodeThis blog entry invites you to an experiment in code. It’s an experiment that runs four weeks and can be performed secretly even at your workplace. It might improve the way you think about conditional statements in an object oriented programming language. Y 阅读全文
posted @ 2010-12-22 08:05 程序员天下 阅读(156) 评论(0) 推荐(0) 编辑
摘要:原文地址:The Simplest Anti-IF CodeThe basic problem is that IFs create dependencies, coupling between modules (methods, objects, components, etc.) and increases possible paths inside our code (which reduces legibility).An IF seems like a quick and easy way to make changes, but for the reasons listed abo 阅读全文
posted @ 2010-12-22 08:01 程序员天下 阅读(164) 评论(0) 推荐(0) 编辑
摘要:ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127Unicode分为UTF-8和UTF-16。UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理。Python 从 2.2 开始支持 Unicode ,函数 decode( char_set )可以实现 其它编码到 Unicode 的转换,函数 encode( char_set )实现 Unicode 到其它编码方式的转换。比如 ("你好").d 阅读全文
posted @ 2010-12-21 20:18 程序员天下 阅读(337) 评论(0) 推荐(0) 编辑
摘要:这些函数的区别在于 实现功能 以及 操作对象 不同。strcpy 函数操作的对象是 字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能。snprintf 函数操作的对象 不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s 格式符,也可实现字符串拷贝功能。memcpy 函数顾名思义就是 内存拷贝,实现 将一个 内存块 的内容复制到另一个 内存块 这一功能。内存块由其首地址以及长度确定。程序中出现的实体对象,不论是什么类型,其最终表现就是在内存中占 阅读全文
posted @ 2010-12-20 16:37 程序员天下 阅读(356) 评论(0) 推荐(0) 编辑
摘要:linux 下查看cpu位数 内核等参数命令 #uname -aLinux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux(查看当前操作系统内核信息)#cat /etc/issue | grep LinuxRed Hat Enterprise Linux AS release 4 (Nahant Update 5)(查看当前操作系统发行版信息)#cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8Intel(R) Xeon( 阅读全文
posted @ 2010-12-17 13:25 程序员天下 阅读(333) 评论(0) 推荐(0) 编辑
摘要:UNICODE,GBK,UTF-8区别简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转utf-8就OK了.详细的就见下面转的这篇文章.谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这是一篇程序员写给程序员的趣味读物。所谓趣味是 阅读全文
posted @ 2010-12-16 14:22 程序员天下 阅读(197) 评论(0) 推荐(0) 编辑
摘要:1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题为什么标准头文件都有类似以下的结构?#ifndef __INCvxWorksh#define __INCvxWorksh#ifdef __cp 阅读全文
posted @ 2010-12-16 12:45 程序员天下 阅读(194) 评论(0) 推荐(0) 编辑
摘要:大多数笔记本电脑用户只考虑笔记本电脑能为他们做什么,而不考虑他们能为其笔记本电脑做什么。 但如果您象对待宠物狗一样来对待它 - 不要喂得太多也不要让它饿着、不要将它留在热哄哄的汽车里、使它保持清洁、对它温柔 - 它将给您数年的良好回报。 1. 保养好电池 笔 记本电脑的电池容量随时间推移而下降,还会磨损和破损,但您采取一些措施就可使其寿命延长到最长。 例如,最好在电量只有 10-20% 时充电,因为经常让电池的电量用至 0% 对电池并不好。 虽然短期的放电和充电不会真正损坏电池,但会降低电池计量器的准确性; 这可通过每隔 30 次充电之后有意地完全放电加以修复。 如果您长时间不用电池,可... 阅读全文
posted @ 2010-12-14 13:37 程序员天下 阅读(223) 评论(0) 推荐(0) 编辑
摘要:Over the past 4 years, the Ext JS codebase has evolved; new components have been added and coding standards have improved. During this process, it was necessary to go back every so often to refactor older components and keep processes in sync.在过去的4年里,Ext js的代码库不断在发展,新的组建不断被添加,编码标准也在不断的改进。在这期间,一个很重要的 阅读全文
posted @ 2010-12-14 07:52 程序员天下 阅读(235) 评论(0) 推荐(0) 编辑
摘要:Source:#!/bin/env python# coding=gb2312# -*- coding: gb2312 -*-from __future__ import division#### if-else ####print '#### if-else ####'a = input("a: ") # 12 or 10+2b = input("b: ")if(a>b): print "max: ", aelse: print "max: ", b#### if-elif-else ### 阅读全文
posted @ 2010-12-09 15:40 程序员天下 阅读(29822) 评论(0) 推荐(0) 编辑
摘要:简介POSIX thread 简称为pthread,Posix线程是一个POSIX标准线程.该标准定义内部API创建和操纵线程.作用 线程库实行了POSIX线程标准通常称为pthreads.pthreads是最常用的POSIX系统如Linux和Unix,而微软Windowsimplementations同时存在.举例来说,pthreads-w32可支持MIDP的pthread Pthreads定义了一套 C程序语言类型、函数与常量,它以 pthread.h 头文件和一个线程库实现。 数据类型 pthread_t:线程句柄 pthread_attr_t:线程属性 线程操纵函数(简介起见,... 阅读全文
posted @ 2010-12-08 14:54 程序员天下 阅读(179) 评论(0) 推荐(0) 编辑
摘要:在对IP地址结构体SOCKADDR_IN赋值的时候,经常会用到下列的函数htonl,htons,inet_addr,与之相对应的函数是ntohl,ntohs,inet_ntoa。查看这些函数的解析,会发现这些函数其实是与主机字节序和网络字节序之间转换有关。就是什么网络字节序,什么是主机字节序呢?下面我写出他们之间的转换:用IP地址127.0.0.1为例:第一步 127 . 0 . 0 . 1 把IP地址每一部分转换为8位的二进制数。第二步 01111111 00000000 00000000 00000001 = 2130706433(主机字节序)然后把上面的四部分二进制数从右往左按部分重新排 阅读全文
posted @ 2010-12-07 19:52 程序员天下 阅读(1632) 评论(0) 推荐(0) 编辑
摘要:在Java的Object类中定义了(protected)clone()方法,如果自己的类需要clone方法的话需要实现Cloneable接口,并重写clone()方法和将方法访问级别改为(public)。但是如果自己的类如果属性比较多,重写clone方法还是会花去不少时间,更重要的是以后增加或者删除属性的时候也要相应修改clone方法,总的来说还是比较麻烦的。这里如果对性能不太计较的话,其实可以有一个简单快速的方法实现clone方法,就是使用Java语言的序列化功能来实现clone方法,如下:以下是几个测试的Bean类import java.io.Serializable;public cla 阅读全文
posted @ 2010-12-07 08:32 程序员天下 阅读(376) 评论(0) 推荐(0) 编辑
摘要:1. du命令详细用法常用命令:[b]du[/b] –a查询档案或目录的磁盘使用空间a:显示全部目录和其次目录下的每个档案所占的磁盘空间b:大小用bytes来表示 (默认值为k bytes)c:最后再加上总计 (默认值)s:只显示各档案大小的总合x:只计算同属同一个档案系统的档案L:计算所有的档案大小引用指令 du 能以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小。使用 -h 参数来显示 human-readable 的格式。例如:# du -h /etc104K /etc/defaults6.0K /etc/X11在查看目录的使用情形时,我们可以将输出结果导到 so 阅读全文
posted @ 2010-12-06 16:23 程序员天下 阅读(516) 评论(0) 推荐(0) 编辑
摘要:简介:Linux® 内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。在本文中,您将探索 Linux 内核的总体结构,并学习一些主要的子系统和核心接口。由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先回顾一下 Linux 的简短历史,然后从较高的层次审视 Linux 内核的体系结构,最后介绍它的主要子系统。Linux 内核具有超过 600 万行的代码,因此本文不可能进行完整的介绍。请使用指向其他内容的链接进一步学习。尽管 Linux 绝对是最流行的开源操作系统,但是相对于其他操作系统的漫长历史来说,Lin 阅读全文
posted @ 2010-12-06 13:25 程序员天下 阅读(135) 评论(0) 推荐(0) 编辑
摘要:TCP三次握手TCP连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换TCP窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:1.客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。2.服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。3. .客户端接收到服务器端返回的SY 阅读全文
posted @ 2010-12-06 12:08 程序员天下 阅读(211) 评论(0) 推荐(0) 编辑
摘要:学习C++和编程的50个观点http://www.programfan.com/club/showtxt.asp?id=32668推荐C++教程(综合了好几个人的推荐)http://www.programfan.com/blog/article.asp?id=7907研发推荐书籍介绍http://www.sudu.cn/info/html/edu/20080403/261058.htmlC++学习推荐书目http://hi.baidu.com/optical_engineering/blog/item/b5bf69347bbf6e3d5bb5f5a4.html撼世出击:C/C++编程语言学习资 阅读全文
posted @ 2010-12-03 09:41 程序员天下 阅读(202) 评论(0) 推荐(0) 编辑
摘要:新升级系统内存,从原来的2G加到4G,但是在使用命令查看的时候只能看到3291M,如下:$ free -m total used free shared buffers cachedMem: 3291 801 2489 0 95 342-/+ buffers/cache: 363 2927Swap: 1906 0 1906查了一下才知道,默认32bit的Linu... 阅读全文
posted @ 2010-12-03 08:18 程序员天下 阅读(254) 评论(0) 推荐(0) 编辑
摘要:在Linux上如果想使用类似windows上的TortoiseCVS客户端的话好像只有subversion的工具(RabbitVCS),没有cvs的工具。其实我们可以通过给Linux的Nautilus添加Scripts达到类似(比较简单)的效果。进入Nautilus的脚本目录,如果没有就创建一个,通常默认是用户目录下的~/.gnome2/nautilus-scripts添加几个文件如下:"cvs up"#!/bin/shif [ "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}" != "" ]then 阅读全文
posted @ 2010-12-02 09:02 程序员天下 阅读(162) 评论(0) 推荐(0) 编辑

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