- 博客(201)
- 资源 (21)
- 收藏
- 关注
原创 GNU C中的零长度数组
随手翻阅"linux内核设计与实现"一书,看到一个关于进程的结构体:struct thread_info { struct task_struct *task; struct exec_domain *exec_domain; unsigned long flags; __u32 status; __u32 cp
2009-01-01 21:36:00 8421 11
原创 Linux下的C/C++开发与调试工具
Linux开发环境相当完善,且功能完整,它主要由GNU的编译器和库,以及大量的系统例程及库组成,能够支持C++、C和汇编语言程序,重点是针对C++和C语言。因为Linux的源代码主要是用C语言实现的,开发人员可以方便地获取并进行修改和重新编译,因此为Linux操作系统提供了一个强大的C语言开发环境至关重要。Linux开发环境包括GNU编译工具集、调试工具和相关的实用工具。 1.GNU编译工具
2008-12-20 11:47:00 4276
原创 一种程序界面文字换肤方法
一种程序界面文字换肤方法Aiguille.LIU2008-11-23 对于GUI程序,界面上会呈现许多图片和文字信息。图片一般都是运行时从外部载入的,更换比较容易。然而,文字信息大多情况下都是直接写在程序代码中的。这种情况下,如果想更换文字,就需要重新编译程序,非常不方便。这里介绍一种程序界面文字换肤方法,可以无须重新编译程序而实现方便的文字换肤功能,可用于OEM或多语言情形。1、字典库 所有
2008-11-23 20:12:00 1581
原创 hacker & copyleft
自由软件运动的开山鼻祖Richard Stallman认为:1、所有人都对编程着迷,并且在生活的其他方面,我们也愿意展示自己的才华。我们称自己叫“hacker”。2、自由软件使用对称版权copyleft,赋予了用户四个方面的自由度: 0. 运行软件的自由。 1. 学习源代码,修改源代码的自由。 2. 再次分发程序的自由。 3. 分发经自己修改的版本的自由。 发现自己对编程很着迷,也
2008-06-01 15:33:00 1364
原创 四大搜索引擎对比
四大搜索引擎对比 公司/项数/搜索引擎 google yahoo baidu microsoft google 2,300,000,0
2008-05-08 17:35:00 3909
原创 函数的线程安全与可重入
函数的线程安全与可重入刘爱贵 / Aiguille.LIU线程安全的(Thread-Safe):如果一个函数在同一时刻可以被多个线程安全地调用,就称该函数是线程安全的。线程安全函数解决多个线程调用函数时访问共享资源的冲突问题。可重入(Reentrant):函数可以由多于一个线程并发使用,而不必担心数据错误。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入性解决函数运行结果的
2008-05-05 14:41:00 2994
原创 API函数库的构造与编程应用
API函数库的构造与编程应用(刘爱贵 - Aiguille.LIU) 函数库是一组执行特定功能操作的函数集合,可以独立提供给第三方进行程序开发,通常又称为API(Application Programming Interface),即应用程序编程接口。Linux下,函数库一般有两种形式:静态函数库和动态函数库。应用函数库进行编程时,如果使用静态函数库,则需要将其链接进应用程序中;而使用动态共
2008-04-27 18:02:00 2110 2
原创 九重天(Nine steps to heaven)
九重天(Nine steps to heaven)(刘爱贵 - Aiguille.LIU)偶然翻阅书籍,发现里面记录了一个"Nine steps to heaven"的东西,细细品味觉得很有味道,还颇有哲理。Nine steps to heaven (九重天):1) Physical Health (身体健康)2) Psychologyical Health (心理健康)3) IQ (智商
2008-04-16 08:46:00 1608 3
原创 你是狮子还是瞪羚?
在非洲,瞪羚每天早上醒来时,它知道自己必须跑得比最快的狮子还快,否则就会被吃掉。狮子每天早上醒来时,它知道自己必须超过跑得最慢的瞪羚,否则它就会被饿死。不管你是狮子还是瞪羚,当太阳升起时,你最好开始奔跑。
2008-04-15 09:00:00 2852
原创 散列表设计
散列表设计(刘爱贵 - Aiguille.LIU)1、基本概念 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2、常用的构造散列函数的方法 散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数
2008-04-14 13:09:00 5757 6
原创 C程序中的存储分配
C程序中的存储分配(刘爱贵 - Aiguille.LIU) C程序设计中,经常需要使用malloc/free动态管理内存,在需要的时候向操作系统申请空间,适合的时候释放不再使用的空间。那么,C库中malloc/free是如何实现的呢?参考"The C Programming Language",我们设计了自己的存储分配程序。 由于程序中某些地方可能不通过malloc调用申请空间,因此,ma
2008-04-12 17:55:00 3161 4
原创 C存储类型和类型限定符
C存储类型和类型限定符(刘爱贵 - Aiguille.LIU) C存储类分为两类:自动存储类(automatic)和静态存储类(static)。声明对象时使用的存储类说明符以及声明的上下文共同决定了对象的存储类。 自动存储类对象对于一个程序块来说是局部的,在退出程序块时该对象将消失。 (1) 如果没有使用存储类说明符,或者如果使用了auto限定符,则程序块中的声明生成的都是自动存
2008-04-11 20:22:00 4911 1
原创 C语言复杂声明的解析
C语言复杂声明的解析(刘爱贵 Aiguille.LIU) C语言是一种通用的程序设计语言,它与UNIX系统之间具有非常密切的联系,C语言是在UNIX系统上开发的,并且,无论是UNIX系统本身还是运行其上的大部分程序,都是用C语言编写编写的。C语言很适合用来编写编译器和操作系统以及各种系统底层软件,因此被称为“系统编程语言”,但它同样适合于编写不同领域中的大多数程序。 C语言中,指针的使用非常广
2008-04-10 18:13:00 3671 3
原创 Linux下C程序命令行参数处理
Linux下开发C程序,甚至是GUI程序,都可能需要处理复杂的命令行参数。健全、可靠的复杂命令行参数处理机制,可使程序方便使用,也更显专业。Linux下几乎所有的命令都提供了参数处理机制,包括短选项和长选项。 POSIX标准中对程序名、参数作了如下相关约定: * 程序名不宜少于2个字符且不多于9个字符; * 程序名应只包含小写字母和阿拉伯数字; * 选项名应该是单
2008-04-05 11:34:00 9708 2
原创 Linux文件系统链接
Linux文件系统链接有两种:硬链接和符号链接,可以使用ln命令建立,默认情况下产生硬链接。ln命令具体使用可以参考man手册。 硬连接直接指向文件的i节点(Index node)。Linux中,任何一个文件可以有多个目录项指向其i节点。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的
2008-04-03 13:15:00 1875
原创 数学之美
计算机技术不断影响着人们的生活方式,使人们的生活应得越来越美好,而数学在计算机技术的发展中起着非常重要的作用。在Google黑板报中的数学之美系列中,我们更能感受到数学的博大精深和美。我把这些文章收集于此,于大家共同分享!^-^数学之美 系列一 -- 统计语言模型数学之美 系列二 -- 谈谈中文分词数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用数学之美系列 四 --
2008-04-01 21:57:00 2043
原创 程序员心目中的编程高手
[ 以下文字和图片资料来自互联网 ]"Bill Joy MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。这些名字在真正的程序员眼中,一个一个都是如雷贯耳的。作为一名从事计算机行业的人,即使不写程序,你也应该知道他们。如果你是程序员,则更应该了解他们,因为他们让我
2008-03-31 13:58:00 2958 4
原创 用GNU/LINUX工作 - 常用软件
.Shell : bash, csh, ksh.文本编辑器 : vim, emacs, OpenOffice.程序开发 : gcc, make, ld, perl, tcl/tk/wish, j2sdk, php, Gtk/Qt ....论文、幻灯片 : LaTeX, ConTeXt.绘图 : MetaPost, xfig, dia.图像处理 : ImageMagick, Gimp.图像浏览 :
2008-03-30 22:03:00 2488
原创 KISS-UNIX/LINUX哲学思想
摘录自"UNIX程序设计的艺术"一书KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原则”无处不在。大部分隐式的UNIX哲学不是这些前辈所说的,而是他们所做的和UNIX自身建立的例子
2008-03-30 21:55:00 3442 1
原创 TRIE树
一个能够实现查找元素、增加元素和删除元素三种操作的数据结构称为字典。TRIE树,又称键树,可以用来构造字典,适合所有元素都是由字母和数字标记的情形。下面是TRIE树的一种C++实现:#include #include #include using namespace std;const int num_chars = 26;class Trie { protected: str
2008-03-29 13:46:00 2549 3
原创 二叉排序树
二叉排序树(Binary Sort Tree)中,任意结点x,其左子树所有结点的值不大于key[x] ,其右子树的所有结点值不小于key[x]。BST中的操作SEARCH、MINIMUM、MAXIMUM、SUCCESSOR、 PREDECCESSOR、INSERT、DELETE都可以在O(h)内完成,h为树的高度。BST可以用作字典,也可以用作优先队列。BST的C语言实现和操作实例如下:#
2008-03-29 13:45:00 1935
原创 一种五子棋算法
学习算法分析设计时练手所写的,主要是自娱。算法采用极大极小剪枝博弈算法,人工智能还凑和,但BUG多多,有时间再改改。设计主要包括:数据结构、估值函数、胜负判断、搜索算法VC实现:http://goc.ac.cn/liuag/html/software_fivechess.html1、数据结构//记录每步棋,可以建立链表用来进行悔棋、后退(本程序没有实现)struct Step{
2008-03-29 13:39:00 16509 7
原创 背包问题优先队列分枝限界算法
这个大概是算法课上的作业题。所谓的背包问题,可以描述如下:一个小偷打劫一个保险箱,发现柜子里有N类不同大小与价值的物品,但小偷只有一个容积为M的背包来装东西,背包问题就是要找出一个小偷选择所偷物品的组合,以使偷走的物品总价值最大。这个问题的求解有很多种方法,本程序使用分枝限界法求解。/* Copyright (c) 2006, 刘爱贵, Aigui.LIU@ihep.ac.cn, C
2008-03-29 13:35:00 3579
原创 中缀和后缀表达式求值算法
表达式求值是程序设计语言编译中的一个最基本问题,它的实现是堆栈应用的一个重要例子。程序中使用常用、直观的“算符优先法”实现。/* Copyright (c) 2006, 刘爱贵, Aigui.LIU@ihep.ac.cn, Computing Center of IHEP, Beijing, China */#include "stdafx.h"#include "iostream.h"
2008-03-29 13:32:00 2507
原创 N皇后问题求解算法
大学时C++程序设计课程的作业题目。呵呵!N皇后问题(含八皇后问题的扩展,规则同八皇后):在N*N的棋盘上,放置N个皇后,要求每一横行每一列,每一对角线上均只能放置一个皇后,求解可能的方案及方案数。下面程序利用堆栈数据结构,使用回溯法求出所有可行解。/* Copyright (c) 2006, Computing Center of IHEP, Beijing, China Aigui
2008-03-29 13:29:00 3473 3
原创 Client免输密码登录SSH Server的一种方法
我们经常要在自己工作的UNIX/LINUX系统间SSH登录,SCP传输数据,总是要输入密码,很烦是吧?SSH支持多种登录验证方式,默认使用的是键盘交互方式(Keyboard-Interactive),也就是手工输入密码的那种。而在实际应用中,有时需要免输密码直接登录SSH SERVER,如MPI作业需要在WNs间使用SCP传输数据(非交互方式)。这就需要使用公钥(Public Key)验证方式,并
2008-03-28 15:03:00 2296
原创 个人所得税计算
VC实现的小工具:http://goc.ac.cn/liuag/html/software_calculatorx.html计算公式很简单,程序一看就明白。PS:那时个税起征点是1600,现在都2000了,^-^//根据税前工资和个税起征点计算所得税double calculateTax(double presalary, double base){ double tax; d
2008-03-28 14:52:00 2296
原创 递归算法
递归是设计和描述算法的一种有力的工具,它在复杂算法的描述中被经常采用。采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。(引自:http://blog.chi
2008-03-27 14:37:00 1626 1
原创 常用排序算法及C例程
排序(Sorting)是计算机程序设计中的一个重要而且常用的操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。下面介绍最为常用的几种排序算法,并进行简单地比较分析以及C语言例程。这些C例程都是笔者在学习和工作中慢慢积累起来的,应该说还是有些用处的。(刘爱贵 / Aiguille.LIU)1、快速排序算法 快速排序是目前公认的最好排序算法,是一种基于分治技术的重要
2008-03-27 13:10:00 2161
原创 几个小算法
介绍几个小算法:数制转换、数据交换、最大公约数、N次方快速算法、KMP算法。这几个算法在相关数据结构和算法书上都有介绍,这里给出C语言实现例子,供大家参考。(刘爱贵 / Aiguille.LIU)1、数制转换算法十进制数N转换为d进制数,根据公式 N = (N div d) * d + N mod d实现 ,堆栈的典型应用。C语言实现如下:#include "./stack.h"#incl
2008-03-27 13:05:00 1642 1
原创 数值交换算法
三种方法:(1)使用临时变量 (2)不使用中间变量,仅使用加法运算 (3)不使用中间变量,使用异或XOR操作#include template void swap_var(T &a, T &b){ T tmp; tmp = a; a = b; b = tmp;}template void swap_add(T &a, T &b){ a = a - b; b = a + b;
2008-03-26 20:49:00 2514 4
原创 文件访问预测
注:“文件访问预测”是我论文的研究工作中的一部分。 处理器与I/O存在速度鸿沟、网络带宽的限制(特别是无线移动网络)、网络应用的断连操作(如移动计算、AFS)等原因,造成了数据访问的延迟,IO和网络成为了制约性能的瓶颈。 为了解决这个问题,通常采用缓存(Cache)和预取(Pre-fetch)技术。缓存技术利用数据访问的时间局部性,对访问过的数据进行暂时的保留。但由于缓
2008-03-25 21:21:00 2386 7
原创 数据聚类概述
[引言]我调研数据聚类的目的是想基于聚类对文件访问模式进行预测。许多系统把数据访问请求当作是独立的事件。实际上,数据请求并非完全随机,而是由用户或程序的行为驱动的,存在特定的访问模式。同类用户或多或少具有相同的访问模式,同类文件被同时访问的可能性相对比较大,同一个工作集 (可以看作一个类)内的文件往往在一个事务中都被访问。因此,需要根据有文件历史访问信息,对用户或文件等进行聚类,在此基础上对未来访
2008-03-25 21:14:00 3825
原创 如何提高自己的创造力?
创新(Innovation)、技术创新(Technology Innovation),已经成了人们耳熟能详的词汇,进入了每个普通人的生活。我在网络上查阅了一下,创新大致可以定义如下:(1)“创新”一词在汉语中早已有之,然而,近年来,“创新”一词的广泛流行是由经济学中引入“创新”的概念而引发的。 (2)在英文中,这个创新Innovation,它这个词起源于拉丁语。它原意有三层含义,一个,更新。第二,
2008-03-25 13:03:00 4190 2
原创 读我(Readme)
关于我:刘爱贵(Aiguille Liu),更多信息http://goc.ac.cn/liuag/readme.htmlGoogle Page: http://aigui.liu.googlepages.com Homepage: http://www.goc.ac.cn/liuag SOHU Blog: http://www.liuag.cn MSN: liuag@hotmail
2008-03-22 23:53:00 2003
原创 计算机三大理论基石
“如果从事计算机的人都站在一座坟墓前,那么这座坟墓就是图灵机;如果有勇气掘开坟墓,那么有口棺材,就是递归论;里面还有一具骷髅,则是能行性”。这是计算机体系结构课上老师说的,可惜自己计算机理论学的不好。这段话是我翻阅以前的课堂笔记找出来,觉得很精彩。
2008-03-22 23:42:00 3967 4
原创 集群并行文件系统Lustre部署
liuben Normal liuben 2 180 2006-10-11T09:07:00Z 2006-10-11T09:07:00Z 4 1320 3566 cc-ihep 142 104 9245 9.2812 7.8 磅 0 2
2008-03-21 23:57:00 6669
原创 LINUX Daemon程序设计
liuben liuben 2 49 2006-11-02T07:02:00Z 2006-11-02T07:02:00Z 5 550 3138 cc-ihep 26 6 3853 9.2812 7.8 磅 0 2
2008-03-21 23:56:00 8848 3
新一代全闪SDS存储系统技术架构
2020-12-11
TaoCloud FASS 技术白皮书 v1.9.pdf
2020-04-19
闪存技术与应用方法-刘爱贵
2015-09-22
GlusterFS 101培训课程
2013-12-02
RAID 技术发展综述
2009-09-22
快照(Snapshot)技术发展综述
2009-08-28
Introduction to DHT
2008-03-28
数据挖掘教程
2008-03-27
Survey of Clustering Algorithms
2008-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人