06 2011 档案
摘要:使用 gettext 进行程序的本地化在 perl 中也可以用 GNU gettext 工具进行本地化。先看这个例子:1use Locale::gettext;2use POSIX; # Needed for setlocale()3setlocale(LC_MESSAGES, "");4bindtextdomain("helloworld", "locale");5textdomain("helloworld");6print gettext("Hello World!\n"), "
阅读全文
摘要:目录C代码优化方案1、选择合适的算法和数据结构2、使用尽量小的数据类型3、减少运算的强度(1)、查表(游戏程序员必修课)(2)、求余运算(3)、平方运算(4)、用移位实现乘除法运算(5)、避免不必要的整数除法(6)、使用增量和减量操作符(7)、使用复合赋值表达式(8)、提取公共的子表达式4、结构体成员的布局(1)按数据类型的长度排序(2)把结构体填充成最长类型长度的整倍数(3)按数据类型的长度排序本地变量(4)把频繁使用的指针型参数拷贝到本地变量5、循环优化(1)、充分分解小的循环(2)、提取公共部分(3)、延时函数(4)、while循环和do…while循环(6)、循环展开(6)、循环嵌套(
阅读全文
摘要:1. C++面向对象程序设计的重要概念 早期革命影片里有这样一个角色,他说:“我是党代表,我代表党,我就是党。”后来他给同志们带来了灾难。 会用C++的程序员一定懂得面向对象程序设计吗? 不会用C++的程序员一定不懂得面向对象程序设计吗? 两者都未必。就象坏蛋入党后未必能成为好人,好人不入党未必变成坏蛋那样。 我不怕触犯众怒地说句大话:“C++没有高手,C 语言才有高手。”在用C 和C++编程8年之后,我深深地遗憾自己不是C 语言的高手,更遗憾没有人点拨我如何进行面向对象程序设计。我和很多C++程序员一样,在享用到C++语法的好处时便以为自己已经明白了面向对象程序设计。就象挤掉牙膏卖牙膏皮那样
阅读全文
摘要:计算机将信息按位编码,通常组织成字节序列。用不同的编码方式表示整数、实数和字符串。不同的计算机模型在编码数字和多字节数据中的字节排序时使用不同的约定。 C 语言的设计可以包容多种不同字长和数字编码的实现。虽然高端机器逐渐开始使用 64 位字长,但是目前大多数机器仍使用 32 位字长。大多数机器对整数使用补码编码,而对浮点数使用 IEEE 浮点编码。在位级上理解这些编码,并且理解算术运算的数学特性,对于想使编写的程序能在全部数值范围上正确运算的程序员来说,是很重要的。 在相同长度的无符号和有符号整数之间进行强制类型转换时,大多数 C 语言实现遵循的原则是底层的位模式不变。在补码机器上,对于一个.
阅读全文
摘要:方法一:推荐打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change…,选择Fixedsys字体,字符集选择CHINESE_GB2312。在window-〉Appearance -〉Translation中,Received data assumed to be in which character set 中,把Use font encoding改为UTF-8如果经常使用,把这些设置保存在session里面. 现在打开putty,登录成功后,在shell中输入:export LC_ALL=’zh_CN.utf8′方法二:[root@linu
阅读全文
摘要:优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式++自增运算符++变量名/变量名++单目运算符--自减运算符--变量名/变量名--单目运算符*取值运算符*指针变量单目运算符&取地址运算符&变量名单目运算符!逻辑非运算符!表达式单目运算符~按位取反运算符~表达式单目运算符sizeof长度运算符sizeof(表达式)3/除表达式/表达式左到右双目运算符*乘表
阅读全文
摘要:在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中 可以使用多个队列、树、图等结构来组织数据。同种结构的不同实例,也许只在数据元素 的类型或数量上略有差异,如果对每个实例都重新定义,则非常麻烦且容易出错。那么能 否对同种类型数据结构仅定义一次呢?答案是肯定的,C++提供的类模板(Class Template )就可以实现该功能。 一、类模板 类模板是C++提供的一种特殊机制,通过它我们可以定义一种特殊的类(称为模板类),在类 的定义中可以包含待定的类型参数,在声明类的实例时,系统会自动根据传递的类型生成 用户想要生成的类实例。下面是用C++实现的一个简单的模板类Cli
阅读全文
摘要:[问题描述] 找出由n个元素组成的序列的最长有序子序列长度及其中一个最长有序子序列(注:这里有序指非递减顺序,且不要求子序列连续)。例如,对于序列[3, 7, 1, 5, 9, 3],其中最长有序子序列长度为3,这样的子序列有:[3, 7, 9]、[1, 5, 9]、[3, 5, 9]。[算法思想] 利用动态规划的思想,依次处理序列中每个元素,并记录当前已处理序列的结果。[算法分析与实现] 设数组X的所有元素X[0]、X[1]、…、X[n-1]为目标序列(为了与C/C++语言统一,我们这里下标以0开始)。算法依次处理序列中每个元素X[i](i=0..n-1):> 当处理完元素X[i]时(
阅读全文
摘要:Apt-get error:Encountered a section with no Package: headersolution:sudo rm /var/lib/apt/lists/*sudo apt-get cleansudo apt-get updatesudo apt-get upgrade
阅读全文
摘要:下面是一些可能比较常见的关于多媒体处理脚本。保存串流视频(mms/rtsp)mplayer -dumpfile dump.rm -dumpstream rstp://..批量将rmvb转为avi#ipod touch可用for i in *.rmvb; do mencoder -vf harddup -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e ’s/rmvb$/avi/’`; done批量将DVD转为avifor i in *.VOB; do
阅读全文
摘要:GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令解释示例file <文件名>加载被调试的可执行程序文件。 因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。(gdb) file gdb-samplerRun的简写,运行被调试的程序。 如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。(gdb) rcContinue的简写,继续执行被调试程序,直至下一个断点或程序结束。(gd
阅读全文
摘要:1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。2.memcpy函数原型:void *memcpy(void *dest,const void *source,size_tcount);返
阅读全文
摘要:内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器 的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。7.2常见的内存错误及其对策 发生内存错误是件非常麻烦的事情
阅读全文
摘要:/*输入一个英文句子,翻转句子中的单词顺序。但单词内的顺序不变。句子中单词空格隔开。为简单起见,标点符号和普通字母一样处理。例如输入"Iamastudent.",则输出“student.aamI”.*/#include<stdio.h>#include<assert.h>voidreverse(char*begin,char*end){chartmp;while(begin<--end){tmp=*begin;*begin=*end;*end=tmp;++begin;}}char*word_reverse(charsrc[]){char*p=s
阅读全文
摘要:一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下 几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、 堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一 块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、 文字常量区—常量字符串就是放在这
阅读全文
摘要:open 有一个特殊的地方,就是如果你给它一个未定义(这是为什么用hash的原因)的变量做间接文件句柄,那么 Perl 会自动为你定义那个变量,也就是自动把它激活,使它包含一个合适的文件句柄引用。#!/usr/bin/perl -wuse strict;use warnings;use FileHandle;my %fh;my @array = (1..10);for(1..5){ open $fh{$_},">$_.txt" or die;}for(1..5){#print $fh{$_} "$_\n"; 此处错误 $fh{$_}->pri
阅读全文
摘要:原文:http://aofengblog.blog.163.com/blog/static/6317021201101502540117/附录1:fdisk命令详解 | Appendix part 1: fdisk command syntaxfdisk 命令的语法如下: fdisk [-b sectorsize] device fdisk -l [-u] [device...]fdisk -s partition...fdisk -v 说明:-b <sectorsize> 指定每个分区的大小。也可以执行fdisk device(如:fdisk /dev/sdb)后,在系统提示时指
阅读全文
摘要:通过文件名查找法: 这个方法说起来就和在WINDOWS下查找文件一样容易理解了。 如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf 这个命令语法看起来很容易就明白了,就是直接在find后面写上 -n
阅读全文
摘要:严格的说“win”键在计算机系统中是个另类。标准键盘上和国际标准是没有“win”键的,所以按国际标准的linux是不用win键的。但是ubuntu却识别了这个键,允许使用这个键作为快捷键,称之为“super”键。 默认“win”键没有任何功能,这也就是说我们使用这个键搭配其他键来做快捷键,丝毫没有快捷键冲突的尴尬。这里我还要教大家把快捷键和程序关联起来,做到“一键启动”。 首先:在首选项的键盘快捷键里面也可以自定义一些快捷键,可是没有办法启动里面没有的程序。 其次:打开配置编辑器->apps->metacity里面global_keybinding(全局键绑定)里面设置您要自定义的
阅读全文
摘要:解决方式:1 删除文件rm -rf /usr/lib/stardict/plugins/stardict_spell.so 2 删除rm -rf ~/.stardict
阅读全文
摘要:#!/usr/bin/perluse Net::FTP;$ftp = Net::FTP->new("ftp.cpan.org", Timeout => 30) or die "Could not connect.\n";$username = "anonymous";$password = ""; $ftp->login($username, $password)or die "Could not log in.\n";$ftp->cwd('/pub/CPAN
阅读全文
摘要:方法一:#!/usr/bin/perl -wuse Net::SMTP;use MIME::Lite;use MIME::Base64;use Authen::SASL;my $from = 'xxx@xxx.com';my $passwd = '*********;my $to = 'xxx@xxx.com';my $messages = "Hello Rainbow!";my $msg = MIME::Lite->new( From => $from, To => $to,# Cc => 'xxx@
阅读全文
摘要:本文将重点涉及多账户用msmtp发信多账户用getmail定时自动收信最基本的procmail投递mutt基本配置mutt个性化配置用Mail-Notification提醒新邮件mutt的使用本文将不涉及发信验证的证书问题fetchmail收信procmail过滤信件字符界面新邮件提醒调用Emacs编辑信Linux下收发邮件的客户端有不少,但我的使用经历让我相信,mutt绝对快速、稳定、高效,而又可以充分定制,远胜于图形界面的工具。mutt并不是一个最优秀的邮件收发工具,却是最优秀的邮件管理工具。它可以调用最优秀的邮件收取工具、发送工具、分拣和投递工具、编辑工具。它本身将邮件显示、排序、类别切
阅读全文
摘要:1. 命令行模式下的发送邮件1.1 安装sendemail2.2 使用sendemail和举例2. 命令行模式下的收取邮件2.1 安装getmail42.2 配置getmail4和简单举例2.3 用munpack从邮件中抽取附件------------------------------------------------------------------------------------------------------------------------------------1. 命令行模式下的发送邮件1.1 安装sendemail 在Ubuntu下可以用新立得软件包管理器搜索安装
阅读全文
摘要:用perl写文本处理程序,或者写服务器端脚本的时候,常常会遇到“Wide character in print” 的警告或者错误。这是因为在程序中处理中文等宽字符时,perl不能识别要处理的内容。首先要知道perl只能处理两种编码:ascii码和utf-8。ascii码是很少的,像中文、日文、韩文等字符要想能被perl处理,只能用 utf-8编码方式。perl就会把那个字符串当做utf-8编码的字符来处理;如果是0,perl就不能认知字符串中除了 ascii码之外的字符,这个时候,就会报出“Wide character in print”的警告或者错误。举个例子,你要在程序中处理‘当历史成为历
阅读全文
摘要:本应用程序设计的几个基本理念是:l 工具箱再利用: 尽可能利用已有的工具;l 简化运行步骤; 不引入过多的业务逻辑,满足的需求越简单越好。所以,我们定义了本应用程序依赖于以下几个工具的运行:l ActivePerl-5.8.4.810-MSWin32-x86l Upload.pll Upload.config我们将主要的执行逻辑都放在Perl源文件Upload.pl中了,配置文件为Upload.config。 这个perl文件将执行的任务是, 按照指定的文件夹目录,自动将该文件夹下的所有文件上传到指定ftp站点的指定目录下。 这个Perl脚本实际是从Uwe Keim的《Perl Script
阅读全文
摘要:考虑如下示例:@dates = qw(2001/1/1 2001/07/04 1999/12/25);你想按日期升序对它们进行排序,哪种方法最有效呢?最直观的Schwartzian转换可以这样写:@sorted = map { $_->[0] }sort { $a->[1] <=> $b->[1] or $a->[2] <=> $b->[2] or $a->[3] <=> $b->[3]}map { [ $_, split m</>, $_, 3 ] } @dates;然而,更高效的Guttman-Ros
阅读全文
摘要:CategoryStateSGE Letter CodePendingpendingqwpending, user holdqwpending, system holdhqwpending, user and system holdhqwpending, user hold, re-queuehRwqpending, system hold, re-queuehRwqpending, user and system hold, re-queuehRwqRunningrunningrtransferringtrunning, re-submitRrtransferring, re-submitR
阅读全文
摘要:优化方法首先,Perl是一门解释性语言,而不是类似于C/C++等编译语言。某些相似操作之间性能的差距可能非常巨大。现在让我们考虑清单 1 和清单 2 中的代码。这两段代码都是将两个字符串连接为一个字符串,一个是通过普通的连接方法实现,而另外一个是通过生成一个数组并使用 join 方法进行连接。 清单 1. 连接字符串,版本 1 my $string = 'abcdefghijklmnopqrstuvwxyz';my $concat = '';foreach my $count (1..999999){ $concat .= $string;} 清单 2. 连接字
阅读全文

浙公网安备 33010602011771号