摘要:
MySQL中数据类型varchar(n)占用的最长字节是3*n.我们知道utf-8编码1个汉字占3个字节.即varchar(n)最多可以容纳3个英文字符或者3个汉字,当然混合的(如1个汉字2个字母)也行.安装MySQL默认的编码是latin,修改MySQL安装目录下的my.cnf文件,我的ubuntu10.04是在/etc/mysql路径下.先关闭MySQL-----$sudo /etc/init.d/mysql stop.在[client]和[mysqld]下面分别加上这么一句话:default-character-set=utf8但是这之前你创建的database还是不支持中文.或者在执行 阅读全文
摘要:
代码依据书上的例子写出来的,<<数据结构与算法分析C++描述>>Mark Allen Weiss著,张怀勇译Prim算法:#include<iostream>#include<vector>using namespace std;const int INF=0xfffffff;struct mark{ bool known; int dv; int pv; mark(){ dv=INF; pv=INF; known=false; } };int main(){ int graph[7][7]={{0,2,4,1,0,0,0}, {2,0,0,3, 阅读全文
摘要:
很多软件开发者和设计者都有将自己的软件作品以开源的形式公之于众的想法。他们希望其他人也可以分享自己的作品,使用自己的作品。开源社区之所以能蓬勃发展就是因为人们有这样的愿望。开源软件如此的丰富,任何你能想到的应用领域里都能找到它们的身影。 大部分的设计人员都已经把使用开源软件和开源代码作为日常工作不可 阅读全文
摘要:
最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一 阅读全文
摘要:
各大公司招聘每次笔试都碰到这种题,今天来把它说清楚.三序中知道其中两个就可以推出第三个,但前提是我们必须知道中序.因为:先序和后序给我们提供的信息是一样的--告诉我们谁是根节点中序则告诉我们左右子树在哪儿例:已知先序为eacbdgf,中序为abcdefg,求后序由先序我们知道e为根节点,我们在中序中把左右子树括起来--(abcd)e(fg)同样对左子树abcd进行分析,先序为acbd,中序为abcd.--a(bcd)递归下去就可以了后序为bdcafge代码实现上述例子:#include "stdio.h"#include "string.h"#inclu 阅读全文
摘要:
首先声明我们的表达式(expression)只是简单的四则运算,再加上小括号.操作数operand,操作符operator如果直接给出后缀表达式(postfix,也叫逆波兰式)是最容易计算的,这种表达式中已经不含括号.方法:遇到操作数时压入栈中;遇到操作符时从栈中弹出两个元素进行此运算,再将运算结果压入栈中.代码如下:#include<iostream>#include<cstdlib>#include<stack>#include<vector>#include<string>using namespace std;int main 阅读全文
摘要:
/dev/null相当于一个只写文件,所有写入它的内容都会永远丢失,而尝试从它那儿读取内容则什么也读不到./dev/null对于写脚本非常有用:1.禁止标准输出cat $filename >/dev/null#文件内容丢失,而不会输出到标准输出中2.禁止标准错误rm $basename 2>/dev/null#标准错误信息去入"黑洞"一般的command把内容输出到标准输出(stdout)中,现在使用command>/dev/null则把输出重定向到/dev/null中,即把输出丢进了"黑洞".2>&1:其中2是标准错误流 阅读全文
摘要:
当我们画一个80*50的迷宫时相当于是画了个80*50的方格子,把格子和格子之间的某些墙拆掉,互相连通的格子我们称之为属于同一个集合,如果两个集合不连通,那就称之为不相交集.画迷宫的过程就是不断地拆除格子与格子之间的墙,直到第一个格子和最后一个格子属于同一个集合算法终止.不相交集类.#ifndef _DISJSETS_H#define _DISJSETS_H#include <vector>using namespace std;class DisjSets{public: explicit DisjSets(int numElems); int find(int x); void 阅读全文
摘要:
首先针对qt-4.5的文件系统天嵌已经制作好了,在TQ2440_CD\Linux资源\Linux源码包\2.6.30.4 里有:root_qt_4.5_2.6.30.4_20100601.tar.gz有必要了解一下这个Qt4.5的文件系统是如何制作成的,在《Qt程序开发完全手册.pdf》的6.6节有讲解。如果从头做一个文件系统,参见《Linux移植.pdf》之让系统“跑”起来step9--11。如果想用4.7版本上也只需在qt-4.5文件系统上稍作修改。把文件系统编译成bin文件时针对64M的板子用mkyaffsimage_2命令。针对256M的板子要用mkyaffs2image命令,我用错了 阅读全文
摘要:
FormLayout显然对于Form非常适合。QFormLayout *formLay=new QFormLayout; QLineEdit *name=new QLineEdit; QLineEdit *email=new QLineEdit; QLineEdit *address=new QLineEdit;formLay->addRow(tr("&Name:"),name); formLay->addRow(tr("&Email:"),email); formLay->addRow(tr("&Ad 阅读全文
摘要:
刚刚在Ubuntu上安装上Oracle10g和Qt4.7,现在要安装Qt连接Oracle的驱动QOCI,方法步骤其实是参照Nokia给我文档,在/opt/qtsdk-2010.05/qt/doc/html/sql-driver.html中,我在此翻译给大家。1.把/home/orisun/.bashrc中新添加的内容追加到/home/root/.bashrc中2.root@zcypc:/opt/qtsdk-2010.05/qt/src/plugins/sqldrivers/oci# qmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/ 阅读全文
摘要:
依然是在Ubuntu10.04下。另外注意现在已不是Qtopia时代,现在的qt一次编写,到处运行,下图中Qt libraries 4.7.2 for Linux/X11和Qt libraries 4.7.2 for embedded Linux两个包的内容是完全一样的。1.上图的这个网址是http://qt.nokia.com/downloads/,我们把Qt SDK for Linux/X11 32-bit**这个包下载下来,使其具有可执行权限,再执行安装:# chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin# ./qt-sdk-lin 阅读全文
摘要:
首先说明我为什么不装11g,因为11g对系统环境求太高(对于我这台四五年前买的机子而言),要求至少1G内存,虽然内存不到1G的情况下安装过程中可以忽略此条件继续安装,并且还可以安装成功并使用,但免不了会出一些使用和性能上的问题。10g则只要求一半的内存。1.去Oracle官网上下载10201_database_linux32.zip,解压为database文件夹。2.安装必需的包apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio13.我直接到当前用户orisun作为Oracle的用户,所 阅读全文
摘要:
先说指针函数,这个简单,就是一个函数的返回类型是个指针嘛,如 int* f(x,y);指向函数代码首地址的指针变量称为函数指针。bool LC (string &, string &); //声明一个普通函数bool (*pf) (string &, string &); //声明一个函数指针下面的代码是合法的:bool b=LC(str1,str2);bool b=(*pf)(str1,str2);typedef bool (*cmpFunc) (string &, string &); //定义一种类型的名称,这种类型就是函数指针下面的代码是 阅读全文
摘要:
先说明一下几个QT的区别:从Qt4.1开始,Qt/Embedded改名为Qtopia Core,又从Qt4.4.1开始,Qtopia Core又改名为Qt for Embedded Linux。我们通常所说的 Qt 都是指的用于 Linux/Unix 的 Qt/X11,真正意义上Qt 是泛指 Qt 的所有版本的图像界面库,比如 Qt/X11,Qt Windows, Qt Mac 等。Qt/Embeded 的概念:它是用于嵌入式 Linux 系统的 Qt 版本,Qt/Embeded 也简称 Qte 或 Qt/EQte 去掉了 X Lib 的依赖而直接工作在 Framebuffer 上,虽然它是 阅读全文
摘要:
共享preference可在一个应用程序的各个组件之间共享。在MainActivity里面创建并保存preference:在SecActivity里面读取preference以上讲的方法可以在一个应用程序的不同Activity之间共享变量,如果只是想保存一个活动的状态,而不需要和其他活动共享,则可以使用Activity.getPreference()。getPreferences()只需要一个mode参数,而getSharedPreferences()还需要另外指定名称。当从其他活动跳转回MainActivity时,EditText中的值是之前输入的值。通过重写onSaveInstanceSt 阅读全文
摘要:
Dialogd=new Dialog(MyActivity.this);//绘制一个新的窗口,并模糊它所遮挡的窗口Windowwindow=d.getWindow();window.setFlags(WindwManager.LayoutParams.FLAG_BLUR_BEHIND, WindwManager.LayoutParams.FLAG_BLUR_BEHIND);d.setTitle(“Dialogtitle”);d.setContentView(R.layout.dialog_view);d.show();AlertDialog类1.向用户呈现一条消息, 阅读全文
摘要:
显示启动新的活动Intentintent=new Intent(MyActivity.this, MyOtherActivity.class);startActivity(intent);隐式的intent和延时的运行时绑定if(somethingWeird&& itDontLookGood){ Intentintent=new Intent(Intent.ACTION_DIAL, Uri.parse(“tel:555-3483”)); startActivity(intent);}Linkify。匹配一定RegEx模式的文本都将会被 阅读全文
摘要:
Android系统里面有3种类型的菜单:optionsmenu,contextmenu,submenu。optionsmenu和contextmenu是并列关系,他们下面可以有子菜单submenu,但submenu下不能再有子菜单,所以Android最多只能有两级菜单。optionsmenu按Menu键就会显示,用于当前的Activity。它包括两种菜单项:因为optionsmenu在屏幕底部最多只能显示6个菜单项,这些菜单项称为iconmenu,iconmenu只支持文字(title)以及icon,可以设置快捷键,不支持checkbox以及radio控件,所以不能设置checkable选项。 阅读全文
摘要:
虽然放在第四讲,但这一讲是最简单的,应该跟在第一讲之后。res/values下面可以创建一些简单的值如strings.xmlcolors.xmldimens.xml还可以存放样式和主题style.xml样式和主题都是style节点。并且parent属性可以指定样式之间的继承关系,SmallText继承了BaseText,ToDoTheme继承了android:style/Theme.Black。在一个resources里面引用其他resources里面的东西要加@前缀。我们定义好了这么多资源,在java代码里面怎么用起来呢?资源的相互引用attribute="@[packagename:]re 阅读全文
摘要:
C语言里的字符串一定纠结了大家太多的感情。1.char *char *buff="orisun";sizeof(buff)=4 用32位存放一个指针strlen(buff)=6 strlen返回字符串的实际长度,不包括末尾的'\0'2.char [n]char bu[100]="orisun"; 从第7位到第100位都是'\0'sizeof(bu)=100 bu是一个数组,sizeof返回数组的长度strlen(bu)=6 strlen返回字符串的实际长度,不包括末尾的'\0'但注意在printf(&quo 阅读全文
摘要:
做项目的时候经常需要把一些操作或者是出错记录写入日志文件。要想输出便于阅读的时间格式,至少有两种方法:time_t now;time(&now);char *msg=ctime(&now);time_t now;time(&now);char *msg=asctime(gmtime(&now));下面这小段代码的功能是把指定的字符串写入文件log,同时注明时间。log文件里的内容:Fri Feb 18 12:56:39 2011发生错误A#include<sys/types.h>#include<sys/stat.h>#include&l 阅读全文
摘要:
recvpic.c#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<string.h>#include<netinet/in.h>#include<memory.h>#include<arpa/inet.h>#define PORT 3214#define MAXLOG 100main(){ int sockfd; struct 阅读全文
摘要:
先说sdcard1.创建sdcardmksdcard 10M /home/orisun/sdcard.img2.带sdcard启动模拟器emulator -sdcard /home/orisun/sdcard.img -avd avd2.2avd2.2是之前创建好的一个虚拟设备的名称3.把文件放到sdcard中另外打开一个终端adb push Picture/1.jpg /sdcard/1.jpg注意不论你现在什么目录,模拟器sdcard的目录就是/sdcard,并且不能加.img4.检查adb shell#cd sdcard#ls详细说说adb的功能adb(Android Debug B 阅读全文
摘要:
其实ubuntu中android开发环境的搭建也很简单(1)下载android-sdk (2)为Eclipse安装ADT,从help->Install New SoftWare进入,地址输入http://dl-ssl.google.com/android/eclipse/要进入NDK开发再下一个android-ndk就可以了以上开发包均可以从http://androidappdocs.appspot.com/sdk/ndk/index.html上下载得到然后vi .bashrc,在PATH中添加3个路径:android-sdk/tools android-sdk/platform-too 阅读全文
摘要:
Ksoap是为J2ME调用/制作WebService量身定做的package zcy.org;import java.io.IOException;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.AndroidHttpTransport;import org.xmlpull.v1.XmlPullParserException; 阅读全文
摘要:
java操作SQL Server 1 package Db; 2 3 import java.sql.*; 4 5 publicclass javaConSQL { 6 publicstaticvoid main(String[] args) { 7 String JDriver ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; // SQL数据库引擎 8 String connectDB ="jdbc:sqlserver://192.168.0.117:1433;DatabaseName=租房查询系统"; 阅读全文
摘要:
使用Eclipse的话还要装web tool platform很多东西,用MyEclipse一步到位,创建WebService很方便。MyEclipse中有自己的Tomcat,要把事先在电脑上独立安装的Tomcat关掉。1.File->New->Web Service ProjectProject Name取为webservice,Framework使用XFire下一步使用默认配置即可。勾上HTTP Client Library选择Yse即可。MyEclipse8.6使用的JDK最高版本是5,而我本机上已经装到6了2.在src下添加一个包org.demo.webservice,再添 阅读全文
摘要:
线程按照其调度者可以分为用户级线程和核心级线程两种。(1)用户级线程如果一个进程中的某一个线程调用了一个阻塞的系统调用,那么该进程包括该进程中的其他 所有线程也同时被阻塞。这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无 法发挥多处理器的优势。(2)核心级线程这种线程允许不同进程中的线程按照同一相对优先调度方法进行调度,这样就可以发挥 多处理器的并发优势。int pthread_create ((pthread_t *thread, pthread_attr_t *attr, void *(* start_routine)(void *), void *arg)) start_rou 阅读全文
摘要:
无名管道无名管道用于在在亲缘关系的进程间通信(父子进程或兄弟进程),它是一种半双工的工作模式。在父进程中创建无名管道后,又创建子进程,则父子进程中分别拥有独立的读端和写端。所以要把父进程的写端 fd[1]和子进程的读端 fd[0]关闭。这时,父子进程之间就建立起了一条“子进程写入父进程读”的通道。数据保存在无名管道中,而无名管道在内核中。无名管道、消息队列、信号量都位于内核,共享内在位于用户空间。#include<unistd.h>#include<string.h>#include<sys/types.h>#include<error.h>#i 阅读全文
摘要:
_exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间, 并清除其在内核中的各种数据结构;exit()函数则在这些基础上作了一些包装, exit()函数在调用 exit 系统之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。wait 函数是用于使父进程(也就是调用 wait 的进程)阻塞,直到一个子进程结束或者该进程接到了一个指定的信号为止。如果该父进程没有子进程或者他的子进程已经结束, wait 则就会立即返回。waitpid 的作用和 wait 一样, 但它并不一定要等待第一个终止的子进程, 它还有若干选项, 如可提供一个非阻塞版本的 wait 功能,也能支持作业控制。 阅读全文
摘要:
标准I/O操作都是基于流缓冲的,符合ANSIC标准I/O处理。全缓冲:填满缓存后才执行I/O操作。如malloc就是全缓冲。行缓冲:遇到换行符时执行I/O操作。如stdin和stdout。无缓冲:如stderr。下面介绍的函数全部包含在stdio.h头文件中。打开文件FILE *fopen(const char * path,const char * mode) //mode可以取r(读),w(写),a(追加)FILE *fdopen(int fd,const char * mode)FILE *freopen(const char *path,const char * mode,FILE . 阅读全文
摘要:
代码#include<termios.h>structtermio{ unsignedshort c_iflag; //输入模式 unsignedshort c_oflag; //输出模式 unsignedshort c_cflag; //控制模式 unsignedshort c_lflag; //本地模式 unsignedchar c_line; //line discipline unsignedchar c_cc[NCC]; //control characters} 阅读全文
摘要:
fcntl解决文件共享的问题,而select处理I/O复用的情况。flock用于对文件施加建议性锁,而fcntl不仅可以施加建议性锁,还可以施加强制锁。同时,fcntl还能对文件的某一记录进行上锁,也就是记录锁。记录锁又可分为读取锁和写入锁,其中读取锁又称为共享锁,它能够使多个进程都能在文件的同一部分建立读取锁。而写入锁又称为排斥锁,在任何时刻只能有一个进程在文件的某个部分上建立写入锁。当然,在文件的同一部分不能同时建立读取锁和写入锁。#include <sys/types.h>#include <unistd.h>#include <fcntl.h>函数原 阅读全文
摘要:
5个不带缓存的文件I/O操作:open,read,write,lseek,close不带缓存是指每一个函数都只调用系统中的一个函数,这些函数不是ANSIC的组成部分,是POSIX的组成部分。#include<sys/types.h> // 提供类型 pid_t的定义#include<sys/stat.h>#include<fcntl.h>intopen(const char *pathname,flags,int perms)#include<unistd.h>intclose(int fd)#include<unistd.h>ssi 阅读全文
摘要:
1.void *calloc(size_t nmemb,size_t size);#include<stdlib.h>struct test{int a[10];char b[20];}main(){struct test *ptr=calloc(sizeof(struct test),10);}2.#include<string.h>void bzero(void *s,int n);bzero()会将参数s所指的内存区域前n个字节,全部设为零值。3.void * memset (void *s ,int c, size_t n);#include <strin 阅读全文
摘要:
先上一个简单例子吧。这一个服务器例程,只做一件:向客户端返回服务器时间:#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<netdb.h>#include<time.h>#include<string.h>#include<stdlib.h>#define PORTNUM 13000#define HOSTLEN 256# 阅读全文
摘要:
Core Dump通过Core Dump是事后调试(postmortem debug)。首先把Core文件的大小设置为1024orisun@zcypc:~$ ulimit -c0orisun@zcypc:~$ ulimit -c 1024注意此修改仅在当前shell有效root@zcypc:/home/orisun# echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern所有的core文件将会存放到/corefile中,文件名格式为:core-命令名-pid-时间戳我们写一个脚本来模拟Core Du 阅读全文
摘要:
GDB(gdb) r 65536 hello 带参数运行可以用ps | grep ×××或pstree来查看进程IDattach <PID> 挂接已经运行的程序,即调试正在运行的程序detach <PID> 取消挂载watch <expression> 一旦表达式值有变化时,马上停止程序gdb调试过程中查看源代码list list <line-number>list <function>单步调试可以用n(ext)和s(tep),step进入函数内部,next不进入在指定函数处设置断点b sumset ar 阅读全文