<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17170217052378517</id><updated>2011-11-27T15:25:23.508-08:00</updated><category term='linux'/><category term='arm'/><category term='C语言'/><category term='ubuntu'/><category term='javascript'/><category term='mysql'/><category term='php'/><category term='flex'/><category term='环境变量'/><category term='linux，ftp'/><category term='数据结构'/><title type='text'>学习笔记</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-4222246747190286733</id><published>2009-04-21T07:48:00.001-07:00</published><updated>2009-04-21T07:51:42.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu下软件管理</title><content type='html'>安装软件 apt-get install softname1 softname2 softname3……&lt;br /&gt;卸载软件 apt-get remove softname1 softname2 softname3……&lt;br /&gt;卸载并清除配置 apt-get remove --purge softname1&lt;br /&gt;更新软件信息数据库 apt-get update&lt;br /&gt;进行系统升级 apt-get upgrade&lt;br /&gt;搜索软件包 apt-cache search softname1 softname2 softname3……&lt;br /&gt;&lt;br /&gt;安装deb软件包 dpkg -i xxx.deb&lt;br /&gt;删除软件包 dpkg -r xxx.deb&lt;br /&gt;连同配置文件一起删除 dpkg -r --purge xxx.deb&lt;br /&gt;查看软件包信息 dpkg -info xxx.deb&lt;br /&gt;查看文件拷贝详情 dpkg -L xxx.deb&lt;br /&gt;查看系统中已安装软件包信息 dpkg -l|grep&lt;br /&gt;重新配置软件包 dpkg-reconfigure xxx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-4222246747190286733?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/4222246747190286733/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/04/ubuntu.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4222246747190286733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4222246747190286733'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/04/ubuntu.html' title='ubuntu下软件管理'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-8950909905539096701</id><published>2009-04-21T01:41:00.000-07:00</published><updated>2009-04-21T01:42:34.052-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux查询命令</title><content type='html'>1.grep、fgrep和egrep命令&lt;br /&gt;　　这组命令以指定模式搜索文件，并通知用户在什么文件中搜索到与指定的模式匹配的字符串，并打印出所有包含该字符串的文本行，在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式；egrep命令检索扩展的正则表达式（包括表达式组和可选项）；fgrep命令检索固定字符串，它不识别正则表达式，是快速搜索命令。&lt;br /&gt;　　这组命令在搜索与定位文件中特定的主题方面非常有用。要搜索的模式可以被认为是一些关键词，您可以用它们来搜索文件中包含的这些关键词。编写程序时，可以用它来寻找某一个函数，或是相关的词组。grep命令的搜索功能比fgrep强大，因为grep命令的搜索模式可以是正则表达式，而fgrep却不能。有关正则表达式请参见shell一章。&lt;br /&gt;　　该组命令中的每一个命令都有一组选项，利用这些选项可以改变其输出方式。例如，可以在搜索到的文本行上加入行号，或者只输出文本行的行号，或者输出所有与搜索模式不匹配的文本行，或只简单地输出已搜索到指定模式的文件名，并且可以指定在查找模式时忽略大小写。&lt;br /&gt;　　这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件，则从标准输入中读取。正常情况下，每个匹配的行被显示到标准输出。如果要查找的文件是多个，则在每一行输出之前加上文件名。&lt;br /&gt;　　语法：&lt;br /&gt;　　grep [选项] [查找模式] [文件名1，文件名2，……]&lt;br /&gt;　　egrep [选项] [查找模式] [文件名1，文件名2，……]&lt;br /&gt;　　fgrep [选项] [查找模式] [文件名1，文件名2，……] &lt;br /&gt;　　参数：&lt;br /&gt;　　- E 每个模式作为一个扩展的正则表达式对待。&lt;br /&gt;　　- F 每个模式作为一组固定字符串对待（以新行分隔），而不作为正则表达式。&lt;br /&gt;　　- b在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。&lt;br /&gt;　　- c 只显示匹配行的数量。&lt;br /&gt;　　- i 比较时不区分大小写。&lt;br /&gt;　　- h 在查找多个文件时，指示grep不要将文件名加入到输出之前。&lt;br /&gt;　　- l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时，不重复显示此文件名。&lt;br /&gt;　　- n 在输出前加上匹配串所在行的行号（文件首行行号为1）。&lt;br /&gt;　　- v 只显示不包含匹配串的行。&lt;br /&gt;　　- x 只显示整行严格匹配的行。&lt;br /&gt;　　- e expression 指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选项。&lt;br /&gt;　　- f expfile 从expfile文件中获取要搜索的模式，一个模式占一行。&lt;br /&gt;　　对该组命令的使用还需注意以下方面： &lt;br /&gt;　　在命令后键入搜索的模式，再键入要搜索的文件。其中，文件名列表中也可以使用特殊字符，如“*”等，用来生成文件名列表。如果想在搜索的模式中包含有空格的字符串，可以用单引号把要搜索的模式括起来，用来表明搜索的模式是由包含空格的字符串组成。否则，Shell将把空格认为是命令行参数的定界符，而grep命令将把搜索模式中的单词解释为文件名列表中的一部分。在下面的例子中，grep命令在文件example中搜索模式“text file”。&lt;br /&gt;　　$ grep ’text file’ example &lt;br /&gt;　　用户可以在命令行上用Shell特殊字符来生成将要搜索的文件名列表。在下面的例子中，特殊字符“*”用来生成一个文件名列表，该列表包含当前目录下所有的文件。该命令将搜索出当前目录下所有文件中与模式匹配的行。&lt;br /&gt;　　$ grep data *&lt;br /&gt;　　特殊字符在搜索一组指定的文件时非常有用。例如，如果想搜索所有的C程序源文件中特定的模式，您可以用“*.c”来指定文件名列表。假设用户的 C程序中包含一些不必要的转向语句（goto语句），想要找到这些语句，可以用如下的命令来搜索并显示所有包含goto语句的代码行：&lt;br /&gt;　　$ grep goto *.c&lt;br /&gt;　　用户可以在命令行上键入搜索模式，也可以使用-f选项从指定文件中读取要搜索的模式。在文件中，每个搜索模式占一行。如果经常要搜索一组常见字符串时，这个功能非常有用。在下面的例子中，用户要在文件exam中搜索字符串“editor”和“create”，就把要搜索的模式放置在文件mypats中，然后，grep命令从文件mypats中读取要搜索的模式。&lt;br /&gt;　　$ cat mypats&lt;br /&gt;　　editor&lt;br /&gt;　　create&lt;br /&gt;　　$ grep -f mypats exam&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;2.文件查找命令&lt;/strong&gt;&lt;br /&gt;　　find命令&lt;br /&gt;　　功能：在目录结构中搜索文件，并执行指定的操作。此命令提供了相当多的查找条件，功能很强大。 &lt;br /&gt;　　语法：find 起始目录 寻找条件 操作&lt;br /&gt;　　说明：find命令从指定的起始目录开始，递归地搜索其各个子目录，查找满足寻找条件的文件并对之采取相关的操作。&lt;br /&gt;　　该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为： &lt;br /&gt;　　（1）and：逻辑与，在命令中用“-a”表示，是系统缺省的选项，表示只有当所给的条件都满足时，寻找条件才算满足。例如：&lt;br /&gt;　　$ find –name ’tmp’ –xtype c -user ’inin’ &lt;br /&gt;　　该命令寻找三个给定条件都满足的所有文件。&lt;br /&gt;　　（2）or：逻辑或，在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时，寻找条件就算满足。&lt;br /&gt;　　例如：&lt;br /&gt;　　$ find –name ’tmp’ –o –name ’mina*’&lt;br /&gt;　　该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。&lt;br /&gt;　　（3）not：逻辑非，在命令中用“！”表示。该运算符表示查找不满足所给条件的文件。&lt;br /&gt;　　例如：&lt;br /&gt;　　$ find ! –name ’tmp’&lt;br /&gt;　　该命令查询文件名不是’tmp’的所有文件。&lt;br /&gt;　　需要说明的是：当使用很多的逻辑选项时，可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解，在话号前需要加转义字符“\”来去除括号的意义。&lt;br /&gt;　　例：$ find \（–name ’tmp’ –xtype c -user ’inin’ \） 寻找条件有以下选项：&lt;br /&gt;　　首先，下列各个选项中的n值可以有三种输入方式，假设n为20，则：&lt;br /&gt;　　+20 表示20以后（21，22，23等）&lt;br /&gt;　　-20 表示20以前（19，18，17等）&lt;br /&gt;　　20 表示正好是20&lt;br /&gt;　　1. 以名称和文件属性查找。&lt;br /&gt;　　- name ’字串’ 查找文件名匹配所给字串的所有文件，字串内可用通配符*、?、[ ]。&lt;br /&gt;　　- lname ’字串’查找文件名匹配所给字串的所有符号链接文件，字串内可用通配符*、?、[ ]。 &lt;br /&gt;　　-gid n 查找属于ID号为n的用户组的所有文件。&lt;br /&gt;　　-uid n 查找属于ID号为n的用户的所有文件。&lt;br /&gt;　　-group ’字串’ 查找属于用户组名为所给字串的所有的文件。 &lt;br /&gt;　　-user ’字串’ 查找属于用户名为所给字串的所有的文件。&lt;br /&gt;　　-empty 查找大小为0的目录或文件。&lt;br /&gt;　　-path ’字串’ 查找路径名匹配所给字串的所有文件，字串内可用通配符*、?、[ ]。&lt;br /&gt;　　-perm 权限 查找具有指定权限的文件和目录，权限的表示可以如711，644。 &lt;br /&gt;　　-size n[bckw] 查找指定文件大小的文件，n后面的字符表示单位，缺省为b，代表512字节的块。&lt;br /&gt;　　-type x 查找类型为x的文件，x为下列字符之一：&lt;br /&gt;　　b 块设备文件 &lt;br /&gt;　　c 字符设备文件&lt;br /&gt;　　d 目录文件 &lt;br /&gt;　　p 命名管道（FIFO） &lt;br /&gt;　　f 普通文件&lt;br /&gt;　　l 符号链接文件（symbolic links）&lt;br /&gt;　　s socket文件 &lt;br /&gt;　　-xtype x 与-type基本相同，但只查找符号链接文件。&lt;br /&gt;　　2. 以时间为条件查找&lt;br /&gt;　　- amin n 查找n分钟以前被访问过的所有文件。&lt;br /&gt;　　- atime n 查找n天以前被访问过的所有文件。&lt;br /&gt;　　- cmin n 查找n分钟以前文件状态被修改过的所有文件。 &lt;br /&gt;　　- ctime n 查找n天以前文件状态被修改过的所有文件。&lt;br /&gt;　　- mmin n 查找n分钟以前文件内容被修改过的所有文件。&lt;br /&gt;　　- mtime n 查找n天以前文件内容被修改过的所有文件。&lt;br /&gt;　　3. 可执行的操作&lt;br /&gt;　　- exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令，而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件；命令的末尾必须以“ \；”结束。&lt;br /&gt;　　- ok 命令名称 { } 对符合条件的文件执行所给的Linux 命令，与exec不同的是，它会询问用户是否需要执行该命令。&lt;br /&gt;　　- ls 详细列出所找到的所有文件。&lt;br /&gt;　　- fprintf 文件名 将找到的文件名写入指定文件。&lt;br /&gt;　　- print 在标准输出设备上显示查找出的文件名。&lt;br /&gt;　　- printf 格式 格式的写法请参考有关C语言的书。&lt;br /&gt;　　例1：查找当前目录中所有以main开头的文件，并显示这些文件的内容。&lt;br /&gt;　　$ find . - name ‘main*’ - exec more {} \; &lt;br /&gt;　　例2：删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。&lt;br /&gt;　　$ find . \（- name a.out - o - name ‘*.o’\）\ &lt;br /&gt;　　&gt; - atime +7 - exec rm {} \;&lt;br /&gt;　　说明如下： 命令中的“.”表示当前目录，此时find将从当前目录开始，逐个在其子目录中查找满足后面指定条件的文件。\（和\）表示括号（），其中的“\”称为转义符。之所以这样写是由于对Shell而言，（和）另有不同的含义，而不是这里的用于组合条件的用途。“- name a.out”是指要查找名为a.out的文件；“- name ‘*.o’”是指要查找所有名字以 .o结尾的文件。这两个- name之间的- o表示逻辑或（or），即查找名字为a.out或名字以 .o结尾的文件，find在当前目录及其子目录下找到这佯的文件之后，再进行判断，看其最后访问时间是否在7天以前（条件－atime +7），若是，则对该文件执行命令rm（- exec rm{ }\;）。其中{ }代表当前查到的符合条件的文件名，\；则是语法所要求的。上述命令中第一行的最后一个\是续行符。当命令太长而在一行写不下时，可输入一个\，之后系统将显示一个&gt;，指示用户继续输入命令。&lt;br /&gt;&lt;br /&gt;　　locate命令&lt;br /&gt;　　功能：locate命令用于查找文件，它比find命令的搜索速度快，它需要一个数据库，这个数据库由每天的例行工作（crontab）程序来建立。当我们建立好这个数据库后，就可以方便地来搜寻所需文件了。&lt;br /&gt;　　语法： locate 相关字&lt;br /&gt;　　例如：查找相关字issue&lt;br /&gt;　　$ locate issue &lt;br /&gt;　　/etc/issue&lt;br /&gt;　　/etc/issue.net &lt;br /&gt;　　/usr/man/man5/issue.5 &lt;br /&gt;　　/usr/man/man5/issue.net.5 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-8950909905539096701?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/8950909905539096701/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/04/linux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8950909905539096701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8950909905539096701'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/04/linux.html' title='Linux查询命令'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-7892932335461964831</id><published>2009-04-19T02:02:00.000-07:00</published><updated>2009-04-19T02:03:28.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arm'/><title type='text'>准备安装qte/Qtopia所需要的软件</title><content type='html'>准备安装Qtopia所需要的软件&lt;br /&gt;&lt;br /&gt;◆ Qtopia 1.7.0；&lt;br /&gt;&lt;br /&gt;◆ Tmake 1.11 (编译Qtopia时要用到) ；&lt;br /&gt;&lt;br /&gt;◆ Qt/Embedded 2.3.7（Qtopia 1.7.0是基于该开发平台上开发的）；&lt;br /&gt;&lt;br /&gt;◆ Qt 2.3.2 for X11（在X11环境下使用其虚拟帧缓冲）；&lt;br /&gt;&lt;br /&gt;这里要注意几个软件版本的对应关系，上面是我使用的版本，虽然很旧，但是可以安装。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-7892932335461964831?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/7892932335461964831/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/04/qteqtopia.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/7892932335461964831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/7892932335461964831'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/04/qteqtopia.html' title='准备安装qte/Qtopia所需要的软件'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-139628472576080086</id><published>2009-04-19T02:00:00.000-07:00</published><updated>2009-04-19T02:02:47.441-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arm'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>X,X11,XFREE,WM,KDE,GNOME等之间的关系</title><content type='html'>很多LINUX初学者分不清楚linux和X之间,X和&lt;br /&gt;Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易&lt;br /&gt;于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.&lt;br /&gt;一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.&lt;br /&gt;图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和&lt;br /&gt;WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样&lt;br /&gt;XFree只是linux下的一个应用程序而已.不是系统的一部分,但是X的存在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们&lt;br /&gt;的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形&lt;br /&gt;界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.&lt;br /&gt;二,X是协议,不是具体的某个软件:&lt;br /&gt;X是协议,就像HTTP协议,IP协议一样.这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容&lt;br /&gt;时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.&lt;br /&gt;X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完&lt;br /&gt;成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先&lt;br /&gt;生,我发现鼠标被按下了,您有什么指示吗?如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正&lt;br /&gt;方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情.&lt;br /&gt;那么协议是需要具体的软件来实现的,这就是下面我要讲的:&lt;br /&gt;三,X和XFree86的关系.&lt;br /&gt;有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.Xfree86就是这样一个去根据法规实&lt;br /&gt;现协议的"交警".他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由&lt;br /&gt;交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有&lt;br /&gt;XFree86,XFree86只是实现X协议的一个免费X服务器软件.商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务&lt;br /&gt;器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神奇.&lt;br /&gt;你可以用google找到这样的X服务器软件.只不过在LINUX上最常用的是XFree86.(现在的linux发行版都用Xorg了)顺便说一句,苹&lt;br /&gt;果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很&lt;br /&gt;多大型三维图形设计软件都是在苹果平台上的原因.&lt;br /&gt;为了便于理解拿HTTP协议来比较:&lt;br /&gt;协议是HTTP (hyper text transmission protocol)&lt;br /&gt;实现这个协议的常用服务器有:apache IIS 等&lt;br /&gt;请求这些服务器传输文件的客户有:IE ,MOZILLA ,NETSCAPE等.&lt;br /&gt;协议是X&lt;br /&gt;实现这个协议的常用服务器有Xfree86 ,Xorg ,Xnest等&lt;br /&gt;请求这些服务器来完成显示任务的客户:所有的X应用程序.&lt;br /&gt;只不过HTTP协议的服务器和客户端通常都在两台不同的电脑(服务器和客户机)之间来实现,所以一般人对这个比较容易理解.而X协议的服务器和客户&lt;br /&gt;端程序通常在同一台电脑上,因此很多用户都感到对此很难理解.既然是协议,那么肯定和平台无关的,因此可以让X应用程序显示在任何装有X服务器的远程计算&lt;br /&gt;机上.甚至显示在装有Xnest服务器的windows系统上.只不过在大多数情况下,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机&lt;br /&gt;的显示器.这也是很多人不理解X是一种协议的原因.&lt;br /&gt;四,X和X11R6又是什么关系?&lt;br /&gt;不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录&lt;br /&gt;X11R6 实际上是 X Protocol version 11 Release 6&lt;br /&gt;(X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6.&lt;br /&gt;另外XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念.&lt;br /&gt;协议版本和实现协议的软件的版本--这两个概念的区别你分清楚了吗?&lt;br /&gt;五,X服务器和WM(window manager 窗口管理器)之间是什么关系.&lt;br /&gt;平时大家起动图形界面是怎么启动的呢?&lt;br /&gt;如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入:&lt;br /&gt;init 3&lt;br /&gt;就可以安全的回到字符界面.&lt;br /&gt;好了,等做完以下实验你就完全明白X和WM(window manager 窗口管理器)之间是什么关系了.&lt;br /&gt;先输入以下命令:&lt;br /&gt;#startx&lt;br /&gt;起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境.&lt;br /&gt;你可以最大化,最小化,移动,关闭窗口等.&lt;br /&gt;按ctrl+alt+backspace反回字符界面.&lt;br /&gt;输入:&lt;br /&gt;#xinit&lt;br /&gt;再次启动图形界面,你看到了什么,你看到一个XTERM.而且不能移动.但是你可以在这个XTERM中输入命令打开X应用程序,如果我输入:&lt;br /&gt;#mozilla&lt;br /&gt;打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框.&lt;br /&gt;为什么同样一个X应用程序会有这样的不同呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了KDE,如果你用GNOME就起动了GNOME.但是你用xinit起动图形界面的时候却没有起动WM.&lt;br /&gt;现在你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的.&lt;br /&gt;如果你用xinit起动图形界面并在xterm中输入twm,看看会有什么?&lt;br /&gt;xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征.&lt;br /&gt;如果你不输入twm而输入gnome-session就可以起动GNOME&lt;br /&gt;或者输入startkde起动KDE.&lt;br /&gt;通过以上的实验你就可以清楚的明白他们之间的关系.&lt;br /&gt;六,关于KDE和GNOME&lt;br /&gt;KDE和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单, KDE是K Desktop&lt;br /&gt;Environment 的缩写.他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等.&lt;br /&gt;GNOME是GNU Network Object Model Environment 的缩写.和KDE一样,也是一个功能强大的综合环境.&lt;br /&gt;另外在其它UNIX系统中,常常使用CDE作为这样一个环境.&lt;br /&gt;其它的小型窗口管理器有:&lt;br /&gt;window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有&lt;br /&gt;window maker 但是默认不安装,大家可以装来试试.只要xinit再wmaker&amp;就可以用windowmaker了.&lt;br /&gt;七,linux图形界面层次关系总结&lt;br /&gt;linux本身--&gt;X服务器窗口管理器(综合桌面环境)--&gt;X应用程序.&lt;br /&gt;转自：http://bbs2.chinaunix.net/thread-1234931-1-1.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-139628472576080086?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/139628472576080086/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/04/xx11xfreewmkdegnome.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/139628472576080086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/139628472576080086'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/04/xx11xfreewmkdegnome.html' title='X,X11,XFREE,WM,KDE,GNOME等之间的关系'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-684040017867598195</id><published>2009-04-13T02:15:00.001-07:00</published><updated>2009-04-13T02:17:09.894-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><title type='text'>Flex特效</title><content type='html'>Flex特效&lt;br /&gt;   AnimateProperty&gt;可实现拉伸效果&lt;br /&gt;   Blur&gt;模糊效果&lt;br /&gt;   Dissolve&gt;实现淡出淡入效果,与Fade&gt;相似&lt;br /&gt;   Glow&gt;外发光效果&lt;br /&gt;   Iris&gt;以矩形方式出现或消失&lt;br /&gt;   Move&gt;移动效果&lt;br /&gt;   Pause&gt;停止   mx.effects.easing.Bounce.easeOut可产生弹动效果&lt;br /&gt;   Resize&gt;改变大小&lt;br /&gt;     Rotate&gt;旋转角度&lt;br /&gt;     SoundEffect&gt;声音效果&lt;br /&gt;   WipeDown&gt;从上往下消失或出现&lt;br /&gt;   WipeLeft&gt;从右往左消失或出现&lt;br /&gt;   WipeRight&gt;从左往右消失或出现&lt;br /&gt;   WipeUp&gt;从下往上消失或出现&lt;br /&gt;   Zoom&gt;放大或缩小&lt;br /&gt;   Transition&gt;不同state切换时的过渡效果&lt;br /&gt;Parallel&gt;多种效果叠加&lt;br /&gt;Sequence&gt;序列执行效果&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-684040017867598195?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/684040017867598195/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/04/flex.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/684040017867598195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/684040017867598195'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/04/flex.html' title='Flex特效'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-871218976009443787</id><published>2009-03-05T21:47:00.000-08:00</published><updated>2009-03-05T21:50:12.734-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>php实现文件上传操作</title><content type='html'>&lt;form&gt; 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时，比如文件内容，请使用 "multipart/form-data"。&lt;br /&gt;&lt;br /&gt;&lt;input&gt; 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说，当在浏览器中预览时，会看到输入框旁边有一个浏览按钮。&lt;br /&gt;&lt;br /&gt;通过使用 PHP 的全局数组 $_FILES，你可以从客户计算机向远程服务器上传文件。&lt;br /&gt;&lt;br /&gt;第一个参数是表单的 input name，第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样：&lt;br /&gt;&lt;br /&gt;$_FILES["file"]["name"] - 被上传文件的名称 &lt;br /&gt;$_FILES["file"]["type"] - 被上传文件的类型 &lt;br /&gt;$_FILES["file"]["size"] - 被上传文件的大小，以字节计 &lt;br /&gt;$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称 &lt;br /&gt;$_FILES["file"]["error"] - 由文件上传导致的错误代码 &lt;br /&gt;&lt;br /&gt;上传文件保存函数：&lt;br /&gt;move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-871218976009443787?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/871218976009443787/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/03/php.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/871218976009443787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/871218976009443787'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/03/php.html' title='php实现文件上传操作'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-388664209765874102</id><published>2009-03-05T21:46:00.000-08:00</published><updated>2009-03-05T21:47:49.738-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>字符串截取函数substr ( )详解</title><content type='html'>原型：string substr ( string $string ， int $start [， int $length ] )，它可以用于在一个较长的（9php.com）字符串中查找匹配的（9php.com）字符串或字符。$string为所要处理的（9php.com）字符串，$start为开始选取的（9php.com）位置，$length为要选取的（9php.com）长度    &lt;br /&gt;例：&lt;br /&gt;&lt;?php&lt;br /&gt;//此教程来源于97xxoo教程网（www.97xxoo.org）&lt;br /&gt;查看完整的（9php.com）教程请点：http://www.97xxoo.org/article/1/2008/20081115345.shtml&lt;br /&gt;$rest1 = substr("abcdef"， 0， 0); // returns ""&lt;br /&gt;$rest2 = substr("abcdef"， 0， 2); // returns "ab"&lt;br /&gt;$rest3 = substr("abcdef"， 0， -1); // returns "abcde"&lt;br /&gt;$rest4 = substr("abcdef"， 2，0); // returns ""&lt;br /&gt;$rest5 = substr("abcdef"， 2，2); // returns "cd"&lt;br /&gt;$rest6 = substr("abcdef"， 2， -1); // returns "cde"&lt;br /&gt;$rest7 = substr("abcdef"， -2，0); // returns ""&lt;br /&gt;$rest8 = substr("abcdef"， -2，2); // returns "ef"&lt;br /&gt;$rest9 = substr("abcdef"， -2，-1); // returns "e"&lt;br /&gt;?&gt;&lt;br /&gt;$start如果为非负数，在字符串中以0为开头从左向右开始记数，草榴社区即0代表字符"a"，1则代表字符"b"，以此类推。如果是负数，在字符串中以1为开头从右向左开始记数，即-1代表字符"f"，-2代表字符"e"，同理也可以此类推。&lt;br /&gt;该函数在使用中有时也省略 $length，这个时候如果只用一个正数作为子字符串起点，将得到从起点到字符串结束的（9php.com）整个字符串。如果只用一个负数作为子字符串起点，将得到一个原字符串尾部的（9php.com）一个子字符串，字符个数等于负数的（9php.com）绝对值，其实原理和上述不省略$length时一样。只是不用再去判断所取字符的（9php.com）个数，单去判断起始位置就OK。&lt;br /&gt;例：&lt;br /&gt;&lt;?php&lt;br /&gt;$rest1 = substr("abcdef"， 2); // returns "cdef"&lt;br /&gt;$rest2 = substr("abcdef"， -2); // returns "ef"&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-388664209765874102?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/388664209765874102/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/03/substr.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/388664209765874102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/388664209765874102'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/03/substr.html' title='字符串截取函数substr ( )详解'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-8364032094159881192</id><published>2009-02-20T00:38:00.000-08:00</published><updated>2009-02-20T00:42:26.400-08:00</updated><title type='text'>电脑定时关机命令</title><content type='html'>运行中输入 shutdown -s -t 3600 &lt;br /&gt;&lt;br /&gt;就可以倒计时关机了。3600是秒。数字可以自己设置 &lt;br /&gt;&lt;br /&gt;shutdown -a 取消倒计时&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-8364032094159881192?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/8364032094159881192/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/02/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8364032094159881192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8364032094159881192'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/02/blog-post.html' title='电脑定时关机命令'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-1846966233144943572</id><published>2009-01-17T10:46:00.000-08:00</published><updated>2009-01-17T10:47:01.193-08:00</updated><title type='text'>梦幻钓鱼大全</title><content type='html'>一、傲来的钓鱼技巧： &lt;br /&gt;1 好象有鱼出现了，鱼漂微微动了一下，水面微波荡漾，鱼钩好象碰到了什么，鱼竿开始下弯 【小力 直竿 快速】沙丁鱼 &lt;br /&gt;2 好象有鱼出现了，鱼漂微微动了一下，水面微波荡漾，鱼钩好象碰到了什么，鱼漂上起下浮 【中力 直竿 快速】对虾 &lt;br /&gt;3 好象有鱼出现了，鱼漂微微动了一下，水面微波荡漾，鱼竿开始下弯了，水面溅起浪花 【小力 斜竿 快速】大黄鱼 &lt;br /&gt;4 好象有鱼出现了，鱼漂微微动了一下，水面微波荡漾，鱼竿开始下弯了，鱼漂上起下浮 【中力 斜竿 快速】小黄鱼&lt;br /&gt;5鱼竿开始晃动，好象有鱼出现了，鱼钩好象被什么咬住了，水面溅起浪花，鱼竿开始下弯【中力 直竿 迂回】毛蟹 &lt;br /&gt;6鱼竿开始晃动，好象有鱼出现了，鱼钩好象被什么咬住了，水面溅起浪花，鱼漂上起下浮【大力 直竿 迂回】金枪鱼 &lt;br /&gt;7鱼竿开始晃动，好象有鱼出现了，鱼钩好象被什么咬住了，鱼漂突然沉了一下，鱼竿弯得厉害【中力 直竿 快速】甲鱼&lt;br /&gt;&lt;br /&gt;8鱼钩好象被什么咬住了,水面溅起浪花,鱼竿开始晃动,鱼漂上下起浮,鱼竿开始下弯【大力 斜竿 迂回】海星 &lt;br /&gt;9鱼钩好象被什么咬住了,水面溅起浪花,鱼竿开始晃动,鱼漂上下起浮,鱼漂突然沉了下去【中力 斜竿 迂回】 海马&lt;br /&gt;10水面上好像有动静，鱼漂上下起浮，水面微波荡漾，鱼钩好象碰到了什么,鱼漂突然沉了下去【小力 斜竿 迂回】破箱子 &lt;br /&gt;11水面上好像有动静，鱼漂上下起浮，水面微波荡漾，鱼钩好象碰到了什么,鱼竿开始晃动【小力 直竿 快速】贝壳&lt;br /&gt;&lt;br /&gt;二、长寿的钓鱼技巧： &lt;br /&gt;1鱼漂微微动了一下，水面微波荡漾，好象有鱼出现了，鱼竿开始下弯了，鱼竿开始晃动【小力 直竿 快速】泥鳅 &lt;br /&gt;2鱼漂微微动了一下，水面微波荡漾，好象有鱼出现了，鱼竿开始下弯了，鱼漂上起下浮【中力 直竿 快速】河虾 &lt;br /&gt;3鱼漂微微动了一下，水面微波荡漾，好象有鱼出现了，鱼漂突然沉了一下，鱼漂上起下浮【小力 斜竿 快速】草鱼 &lt;br /&gt;4鱼漂微微动了一下，水面微波荡漾，好象有鱼出现了，鱼漂突然沉了一下，鱼竿开始下弯【中力 斜竿 快速】河蟹&lt;br /&gt;5水面上好像有动静，鱼漂上下起浮，好象有鱼出现了，鱼竿开始下弯了，鱼漂沉下去了【中力 直竿 迂回】鲫鱼 &lt;br /&gt;6水面上好像有动静，鱼漂上下起浮，好象有鱼出现了，鱼竿开始下弯了，鱼钩被什么咬住【大力 直竿 迂回】鲤鱼 &lt;br /&gt;7水面上好像有动静，鱼漂上下起浮，好象有鱼出现了，鱼竿开始下弯了，水面溅起浪花【中力 直竿 快速】大闸蟹&lt;br /&gt;8水面溅起浪花，鱼漂上下起浮, 鱼竿开始下弯了，鱼漂突然沉了一下，鱼竿开始晃动【中力 斜竿 迂回】娃娃鱼 &lt;br /&gt;9水面溅起浪花，鱼漂上下起浮, 鱼竿开始下弯了，鱼漂突然沉了一下，鱼竿弯得厉害【中力 斜竿 迂回】海豚&lt;br /&gt;10水面上好像有动静，鱼漂上下起浮，水面微波荡漾，鱼钩好象碰到了什么,鱼漂突然沉了下去【小力 斜竿 迂回】破箱子 &lt;br /&gt;11水面上好像有动静，鱼漂上下起浮，水面微波荡漾，鱼钩好象碰到了什么,鱼竿开始晃动【小力 直竿 快速】贝壳&lt;br /&gt;&lt;br /&gt;三、鱼竿突然发出了奇异的亮光的钓鱼技巧 &lt;br /&gt;在钓鱼会出现一种奇异的光，这个是需要鱼友帮忙的，至少要1个人帮忙才好成功。帮忙人多用小力,人少用大力,都是有可能的。钓上的鱼种类很多,一级鱼基本没有,多数是3级鱼,帮忙的鱼友可以随机获得1－6条2级鱼。参考钓鱼技巧如下：（第一种钓过毛蟹，第二种用直竿钓到120品河豚）. &lt;br /&gt;1.鱼竿突然发出了奇异的亮光，鱼钩被什么咬住了，水面微波荡漾，鱼漂突然沉了一下，鱼漂沉下去了【大力 直竿 迂回】 随机傲来长寿的2－3级鱼 &lt;br /&gt;2.鱼竿突然发出了奇异的亮光，鱼漂突然沉了下去, 鱼钩被什么咬住了, 水面溅起浪花，鱼竿弯得厉害【大力 直/斜竿 迂回】 随机傲来长寿的2－3级鱼&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-1846966233144943572?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/1846966233144943572/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/01/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1846966233144943572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1846966233144943572'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/01/blog-post.html' title='梦幻钓鱼大全'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-6393315058868595076</id><published>2009-01-05T00:45:00.000-08:00</published><updated>2009-01-05T00:47:36.813-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>javascript的几种对话框</title><content type='html'>alert("message") 显示含有给定消息的"JavaScript Alert"对话框. &lt;br /&gt;&lt;br /&gt;confirm("message") 显示含有给定消息的"Confirm"对话框(有一个OK按钮和一个Cancel按钮).如果用户单击OK返回true,否则返回false. &lt;br /&gt;&lt;br /&gt;prompt("message") 显示一个"prompt"对话框,要求用户根据显示消息给予相应输入. &lt;br /&gt;&lt;br /&gt;open("URL","name") 打开一个新窗口,给予一个指定的名字. &lt;br /&gt;&lt;br /&gt;close() 关闭当前窗口.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;实例：&lt;br /&gt;var con = confirm("确定要离开本页吗？");&lt;br /&gt;if(con == false){&lt;br /&gt;删除内容。&lt;br /&gt;}else{&lt;br /&gt;什么也不做。&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-6393315058868595076?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/6393315058868595076/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/01/javascript.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6393315058868595076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6393315058868595076'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/01/javascript.html' title='javascript的几种对话框'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-4817330297508742618</id><published>2009-01-04T06:18:00.000-08:00</published><updated>2009-01-04T06:46:00.485-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>MySQL联合查询实例</title><content type='html'>表A记录如下：&lt;br /&gt;aID               aNum&lt;br /&gt;1                  a20050111&lt;br /&gt;2                  a20050112&lt;br /&gt;3                  a20050113&lt;br /&gt;4                  a20050114&lt;br /&gt;5                  a20050115&lt;br /&gt;&lt;br /&gt;表B记录如下:&lt;br /&gt;bID               bName&lt;br /&gt;1                   2006032401&lt;br /&gt;2                  2006032402&lt;br /&gt;3                  2006032403&lt;br /&gt;4                  2006032404&lt;br /&gt;8                  2006032408&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;实验如下:&lt;br /&gt;1.left join&lt;br /&gt;&lt;br /&gt;sql语句如下: &lt;br /&gt;select * from A&lt;br /&gt;left join B &lt;br /&gt;on A.aID = B.bID&lt;br /&gt;&lt;br /&gt;结果如下:&lt;br /&gt;aID               aNum                          bID                  bName&lt;br /&gt;1                   a20050111                1                      2006032401&lt;br /&gt;2                   a20050112                2                     2006032402&lt;br /&gt;3                   a20050113                3                     2006032403&lt;br /&gt;4                   a20050114                4                     2006032404&lt;br /&gt;5                   a20050115                NULL              NULL&lt;br /&gt;（所影响的行数为 5 行）&lt;br /&gt;&lt;br /&gt;结果说明:&lt;br /&gt;               left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.&lt;br /&gt;换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).&lt;br /&gt;B表记录不足的地方均为NULL.&lt;br /&gt;&lt;br /&gt;2.right join&lt;br /&gt;sql语句如下: &lt;br /&gt;select * from A&lt;br /&gt;right join B &lt;br /&gt;on A.aID = B.bID&lt;br /&gt;结果如下:&lt;br /&gt;aID               aNum                          bID                  bName&lt;br /&gt;1                   a20050111                1                      2006032401&lt;br /&gt;2                   a20050112                2                     2006032402&lt;br /&gt;3                   a20050113                3                     2006032403&lt;br /&gt;4                   a20050114                4                     2006032404&lt;br /&gt;NULL           NULL                          8                     2006032408&lt;br /&gt;（所影响的行数为 5 行）&lt;br /&gt;结果说明:&lt;br /&gt;        仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.inner join&lt;br /&gt;sql语句如下: &lt;br /&gt;select * from A&lt;br /&gt;innerjoin B &lt;br /&gt;on A.aID = B.bID&lt;br /&gt;&lt;br /&gt;结果如下:&lt;br /&gt;aID               aNum                          bID                  bName&lt;br /&gt;1                   a20050111                1                      2006032401&lt;br /&gt;2                   a20050112                2                     2006032402&lt;br /&gt;3                   a20050113                3                     2006032403&lt;br /&gt;4                   a20050114                4                     2006032404&lt;br /&gt;&lt;br /&gt;结果说明:&lt;br /&gt;        很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-4817330297508742618?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/4817330297508742618/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2009/01/mysql.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4817330297508742618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4817330297508742618'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2009/01/mysql.html' title='MySQL联合查询实例'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-6853625782934107919</id><published>2008-12-08T00:25:00.001-08:00</published><updated>2008-12-08T00:25:58.916-08:00</updated><title type='text'>嵌入式就业尖端公司</title><content type='html'>北京博创兴业科技有限公司 &lt;br /&gt;北京亿旗创新科技发展有限公司 &lt;br /&gt;北京赛德菱信息技术有限公司 &lt;br /&gt;北京微芯力科技 &lt;br /&gt;研华科技 &lt;br /&gt;北京精仪达盛科技有限公司 &lt;br /&gt;北京革新科技有限公司 &lt;br /&gt;北京启东微芯科技发展有限公司 &lt;br /&gt;北京金一倍科技发展有限公司 &lt;br /&gt;清华大学科教仪器厂 &lt;br /&gt;亿道电子技术有限公司 &lt;br /&gt;深圳市英蓓特信息技术有限公司 &lt;br /&gt;深圳市远峰计算机技术有限公司 &lt;br /&gt;华恒科技 &lt;br /&gt;上海复旦金海博科技有限公司 &lt;br /&gt;上海思创培训 &lt;br /&gt;成都傅立叶电子科技有限公司 &lt;br /&gt;长沙科瑞特电子有限公司 &lt;br /&gt;武汉创维特信息技术有限公司 &lt;br /&gt;凌阳大学计划 &lt;br /&gt;湖南湘潭胜西电子科技有限公司 &lt;br /&gt;祥佑数码科技有限公司 &lt;br /&gt;风标科技 &lt;br /&gt;杭州星晨单片机电子有限公司&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-6853625782934107919?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/6853625782934107919/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/12/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6853625782934107919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6853625782934107919'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/12/blog-post.html' title='嵌入式就业尖端公司'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-8438701694963743</id><published>2008-12-01T05:55:00.000-08:00</published><updated>2008-12-01T05:56:18.722-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux下文件类型及表示颜色</title><content type='html'>n    白色：普通文件  （用-表示）&lt;br /&gt;n    红色：压缩文件&lt;br /&gt;n    蓝色：目录文件 （用d表示）&lt;br /&gt;n    青蓝色：链接文件 （用l表示）&lt;br /&gt;n    黄色：设备文件（/dev目录下）（用b或c表示）&lt;br /&gt;b表示的是物理设备;c表示的是字符终端设备.&lt;br /&gt;n    青绿色：可执行文件（/bin、/sbin目录下）&lt;br /&gt;n    粉红色：图片文件或是socket文件（用s表示）&lt;br /&gt;n    青黄色：管道文件 （用p表示）&lt;br /&gt;# file /dev/hda //查看指定文件的类型&lt;br /&gt;# # find /dev -type b //在/dev目录中查找类型是设备的文件，可以将“b"换成上面的任意类型表示字母，如l,c等。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-8438701694963743?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/8438701694963743/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/12/linux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8438701694963743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8438701694963743'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/12/linux.html' title='Linux下文件类型及表示颜色'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-5590605565783504641</id><published>2008-11-20T07:10:00.000-08:00</published><updated>2008-11-20T07:11:28.870-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arm'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>安装arm-elf-gcc交叉编译环境</title><content type='html'>1.3、安装arm-elf-gcc交叉编译环境。&lt;br /&gt;1.3.1&lt;br /&gt;以ROOT身份进入ubuntu8.04, 将arm-elf-tools-20040427.sh拷贝到 /usr/src 目录下&lt;br /&gt;1.3.2&lt;br /&gt;给arm-elf-tools-20040427.sh增加可执行权限：chmod 755 arm-elf-tools-20040427.sh&lt;br /&gt;1.3.3&lt;br /&gt;执行 ./arm-elf-tools-20040427.sh&lt;br /&gt;&lt;br /&gt;提示错误：&lt;br /&gt;&lt;br /&gt;tail: 无法打开“+43” 读取数据: 没有那个文件或目录。&lt;br /&gt;gunzip: stdin: not in gzip format&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;解决办法&lt;br /&gt;tail -n+43 arm-elf-tools-20040427.sh &gt;&gt; 1.tar.gz&lt;br /&gt;tar zxvf 1.tar.gz&lt;br /&gt;这样子你会得到一个usr的文件夹。。&lt;br /&gt;然后： cp -R usr /&lt;br /&gt;&lt;br /&gt;如出现提示无法覆盖/local/man，&lt;br /&gt;如下操作：&lt;br /&gt;cp -r usr/local/man /usr/share/&lt;br /&gt;&lt;br /&gt;查看 /usr/local/bin 目录下应该有 arm-elf-gcc等文件。&lt;br /&gt;这样我们在宿主机里的交叉编译环境安装完成了。&lt;br /&gt;&lt;br /&gt;1.3.4添加交叉编译器的路径：export PATH=$PATH:/usr/local/arm-elf/bin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-5590605565783504641?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/5590605565783504641/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/arm-elf-gcc.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/5590605565783504641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/5590605565783504641'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/arm-elf-gcc.html' title='安装arm-elf-gcc交叉编译环境'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-9189949675697294464</id><published>2008-11-19T19:01:00.000-08:00</published><updated>2008-11-19T19:03:17.531-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>运行shell脚本时 sh,export,source的区别</title><content type='html'>1. 当进程创建一个字进程时候，父进程并不会将普通变量的值传递给它的子进程。&lt;br /&gt;&lt;br /&gt;而export就是解决这个问题用的。在父进程中export A 后，在子进程中就可以使用变量A了。&lt;br /&gt;&lt;br /&gt;2. sh+脚本：重新建立一个子shell执行脚本里面的语句，该子shell继承父shell的变量，但子shell新建的、改变的变量不会被带回父shell，除非使用export。&lt;br /&gt;&lt;br /&gt;可以这么理解：打开一个终端程序 = sh = 执行bash命令&lt;br /&gt;&lt;br /&gt;3. source+脚本：这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行，没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-9189949675697294464?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/9189949675697294464/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/shell-shexportsource.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/9189949675697294464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/9189949675697294464'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/shell-shexportsource.html' title='运行shell脚本时 sh,export,source的区别'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-2657322841232635915</id><published>2008-11-19T18:22:00.000-08:00</published><updated>2008-11-19T18:31:51.834-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arm'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>arm-linux-gcc和arm-elf-gcc的区别</title><content type='html'>arm-linux-gcc是针对arm + linux的开发环境的，kernel使用的是linux，不是uclinux，arm是有硬件MMU的。&lt;br /&gt;&lt;br /&gt;而arm-elf-gcc是针对no MMU arm + uclinux的开发环境，kernel使用的是uclinux，硬件是廉价的无MMU的arm芯片。&lt;br /&gt;&lt;br /&gt;下载地址：http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/&lt;br /&gt;&lt;br /&gt;http://opensrc.sec.samsung.com/download.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-2657322841232635915?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/2657322841232635915/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/arm-linux-gccarm-elf-gcc.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2657322841232635915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2657322841232635915'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/arm-linux-gccarm-elf-gcc.html' title='arm-linux-gcc和arm-elf-gcc的区别'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-163174878865665816</id><published>2008-11-18T05:02:00.000-08:00</published><updated>2008-11-18T05:11:29.493-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='数据结构'/><category scheme='http://www.blogger.com/atom/ns#' term='C语言'/><title type='text'>数据结构之c语言链表操作（学生信息管理）源代码--xxh</title><content type='html'>数据结构之c语言链表操作（学生信息管理）源代码----xxh&lt;br /&gt;&lt;br /&gt;#include "iostream.h"&lt;br /&gt;#include "malloc.h"&lt;br /&gt;#include "windows.h"&lt;br /&gt;#define LEN sizeof( struct student )&lt;br /&gt;//#define NULL 0&lt;br /&gt;struct student&lt;br /&gt;{&lt;br /&gt; int no;&lt;br /&gt; int score;&lt;br /&gt; struct student *next;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;struct student *head;&lt;br /&gt;int size=0;&lt;br /&gt;void init();&lt;br /&gt;void print_list();&lt;br /&gt;&lt;br /&gt;void creat_list()&lt;br /&gt;{&lt;br /&gt; struct student *p1,*p2;&lt;br /&gt; p1 = p2 = ( struct student * ) malloc (LEN);&lt;br /&gt; cout &lt;&lt; "\n开始创建成绩表  (学号和分数输入为0时结束添加)\n ";&lt;br /&gt; cout &lt;&lt; "\n学号:";&lt;br /&gt; cin &gt;&gt; p1-&gt;no;&lt;br /&gt; cout &lt;&lt; "\n分数:";&lt;br /&gt; cin &gt;&gt; p1-&gt;score;&lt;br /&gt; head = p1;&lt;br /&gt; while( p1-&gt;no != 0 )&lt;br /&gt; {&lt;br /&gt;  size=size+1;&lt;br /&gt;  p2-&gt;next = p1;&lt;br /&gt;  p2 = p1;&lt;br /&gt;  p1 = ( struct student * ) malloc (LEN);&lt;br /&gt;  cout &lt;&lt; "\n学号:";&lt;br /&gt;  cin &gt;&gt; p1-&gt;no;&lt;br /&gt;  cout &lt;&lt; "\n分数:";&lt;br /&gt;  cin &gt;&gt; p1-&gt;score;&lt;br /&gt; }&lt;br /&gt; p2-&gt;next = NULL;&lt;br /&gt; print_list();&lt;br /&gt;}&lt;br /&gt;void print_list()&lt;br /&gt;{&lt;br /&gt; system("cls");&lt;br /&gt; struct student *p;&lt;br /&gt; cout &lt;&lt; "\n\n----------------------------共" &lt;&lt; size &lt;&lt; "条成绩记录-----------------------------------\n\n";&lt;br /&gt; cout &lt;&lt; "\t学号\t|\t分数\n";&lt;br /&gt; p = head ;&lt;br /&gt; while( p!= NULL )&lt;br /&gt; {&lt;br /&gt;  cout &lt;&lt; "\t" &lt;&lt; p-&gt;no &lt;&lt; "\t\t" &lt;&lt; p-&gt;score &lt;&lt; "\n" ;&lt;br /&gt;  p = p-&gt;next;&lt;br /&gt; }&lt;br /&gt; cout &lt;&lt; "\n\n----------电气10602班谢小辉 数据结构作业之链表操作(学生成绩表)--------------\n\n";&lt;br /&gt; init();&lt;br /&gt;}&lt;br /&gt;void del()&lt;br /&gt;{&lt;br /&gt; int del_no;&lt;br /&gt; struct student *p1,*p2;&lt;br /&gt; p1 = head ;&lt;br /&gt; cout &lt;&lt; "\n\n请输入需要删除记录的学号：";&lt;br /&gt; cin &gt;&gt; del_no;&lt;br /&gt; while( del_no != p1-&gt;no )&lt;br /&gt; {&lt;br /&gt;  p2 = p1;&lt;br /&gt;  p1 = p1-&gt;next;&lt;br /&gt; }&lt;br /&gt; if( p1 == head )&lt;br /&gt; {&lt;br /&gt;  head = p1-&gt;next;&lt;br /&gt;  size--;&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  p2-&gt;next = p1-&gt;next;&lt;br /&gt;  size--;&lt;br /&gt; }&lt;br /&gt; print_list();&lt;br /&gt;}&lt;br /&gt;void insert()&lt;br /&gt;{&lt;br /&gt; int insert_no;&lt;br /&gt; struct student *p1,*p2,*p;&lt;br /&gt; p = ( struct student * ) malloc (LEN);&lt;br /&gt; p1 = head;&lt;br /&gt; cout &lt;&lt; "\n\n添加新学号:" ;&lt;br /&gt; cin &gt;&gt; p-&gt;no ;&lt;br /&gt; cout &lt;&lt; "\n分数:" ;&lt;br /&gt; cin &gt;&gt; p-&gt;score ;&lt;br /&gt; cout &lt;&lt; "\n新记录插入到哪条记录之后?学号:";&lt;br /&gt; cin &gt;&gt; insert_no;&lt;br /&gt; while( insert_no != p1-&gt;no )&lt;br /&gt; {&lt;br /&gt;  p2 = p1;&lt;br /&gt;  p1 = p1-&gt;next;&lt;br /&gt; }&lt;br /&gt; p2 = p1-&gt;next;&lt;br /&gt; p1-&gt;next = p;&lt;br /&gt; p-&gt;next = p2;&lt;br /&gt; size++;&lt;br /&gt; print_list();&lt;br /&gt;}&lt;br /&gt;void edit()&lt;br /&gt;{&lt;br /&gt; int edit_no;&lt;br /&gt; struct student *p1,*p2;&lt;br /&gt; cout &lt;&lt; "\n\n请输入要编辑记录的学号:";&lt;br /&gt; cin &gt;&gt; edit_no ; &lt;br /&gt; p1 = head ;&lt;br /&gt; while( edit_no != p1-&gt;no )&lt;br /&gt; {&lt;br /&gt;  p2 = p1;&lt;br /&gt;  p1 = p1-&gt;next;&lt;br /&gt; }&lt;br /&gt; cout &lt;&lt; "\n新学号:";&lt;br /&gt; cin &gt;&gt; p1-&gt;no;&lt;br /&gt; cout &lt;&lt; "\n新分数:";&lt;br /&gt; cin &gt;&gt; p1-&gt;score;&lt;br /&gt; print_list();&lt;br /&gt;}&lt;br /&gt;void close()&lt;br /&gt;{&lt;br /&gt; system("cls");&lt;br /&gt; cout &lt;&lt; "\n\n\n\n\n\n\t\t谢谢\t电气10602班谢小辉\t2008-10-1 23:00\n\n\n\n\n\n";&lt;br /&gt;}&lt;br /&gt;void init()&lt;br /&gt;{&lt;br /&gt; int t;&lt;br /&gt; cout &lt;&lt; "\n\n\n操作列表：\n\t 1.输出成绩表；\n\t 2.增加记录；\n\t 3.删除记录；\n\t 4.修改记录；\n\t 5.退出；\n操作：";&lt;br /&gt; cin &gt;&gt; t;&lt;br /&gt; switch(t)&lt;br /&gt; {&lt;br /&gt;  case 1 : print_list();break;&lt;br /&gt;  case 2 : insert(); break;&lt;br /&gt;  case 3 : del(); break;&lt;br /&gt;  case 4 : edit(); break;&lt;br /&gt;  case 5 : close(); break;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt; creat_list(); &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-163174878865665816?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/163174878865665816/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/c-xxh.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/163174878865665816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/163174878865665816'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/c-xxh.html' title='数据结构之c语言链表操作（学生信息管理）源代码--xxh'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-2449215317312709784</id><published>2008-11-18T05:00:00.000-08:00</published><updated>2008-11-18T05:01:57.778-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>minicom的使用方法</title><content type='html'>(1) 使用 minicom 之前先设置一下，如下图所示 &lt;br /&gt;  输入以下命令进行设置，如图。 &lt;br /&gt;  #minicom -s  &lt;br /&gt; (2)选择串口 &lt;br /&gt;  选择菜单中的“ Serial port setup ”，按回车，进入如下图所示界面。此时按“ A ”以设置“ Serial Device ”（如果您使用串口 1 ，则输入 /dev/ttyS0 ，如果您使用串口2，则输入/dev/ttyS1）。  &lt;br /&gt; (3)设置波特率 &lt;br /&gt;  按“ E ”键进入设置“ bps/par/Bits ”（波特率）界面，如下图所示。再按“ I ”以设置波特率为 115200，&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;  (4)设置无流控制 &lt;br /&gt;  然后按回车退回到上一级菜单，按“F”键设置“ Hardware Flow Control ”为“ NO ”，其他选项使用缺省值&lt;br /&gt; &lt;br /&gt; (5)保存设置 &lt;br /&gt;      再选择“Exit”退出设置模式。刚才的设置被保存到“ /etc/minirc.dfl ”。 &lt;br /&gt;    设置完毕，如果此时打开目标板电源的电源开关，就会看到 vivi 的启动信息，当 Linux 启动以后， minicom 就等于相当于虚拟终端，你就能通过它来操作目标板了。 &lt;br /&gt;    要退出 minicom ，同时按下“ Ctrl+A ”键，送开后紧接着再按下“ Q ”键，在跳出的窗口中，选择“ Yes ”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-2449215317312709784?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/2449215317312709784/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/minicom.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2449215317312709784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2449215317312709784'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/minicom.html' title='minicom的使用方法'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-6199181229890831844</id><published>2008-11-06T19:35:00.001-08:00</published><updated>2008-11-06T19:35:40.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu开启桌面效果后白屏的解决方法</title><content type='html'>ubuntu开启桌面效果后白屏的解决方法&lt;br /&gt;1) ctrl+alt+backspace注销切换到登录界面&lt;br /&gt;2)左下角option里选择change section, 选择failsafe terminal&lt;br /&gt;3)输入帐号密码进入后，在命令行输入gconf-editor&lt;br /&gt;4)依次选择Desktop-&gt;Gnome-&gt;Applications-&gt;window_manager , 把两处/usr/bin/compiz改成/usr/bin/metacity&lt;br /&gt;5)ctrl+alt+backspace注销切换到登录界面，change section 选择gnome&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-6199181229890831844?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/6199181229890831844/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/ubuntu.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6199181229890831844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6199181229890831844'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/ubuntu.html' title='ubuntu开启桌面效果后白屏的解决方法'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-1886772773311945442</id><published>2008-11-05T04:48:00.001-08:00</published><updated>2008-11-06T18:08:11.218-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arm'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>U-boot移植</title><content type='html'>uboot官方下载地址： http://www.icdev.com.cn/batch.viewlink.php?itemid=1694&lt;br /&gt;1 ）在网上下载一个 u-boot 源代码，我用的是 1.1.2 版本的，最新的应该是 1.1.4 的吧，其实差不多，那就像我那样下载一个 1.1.2 版本的吧。 把源文件解压，这个应该不用说了吧，学过 linux 的人应该会，不会的话我想你继续做下去也困难，那就先装个 linux 用下吧（我用的是 RedHat 的， 哦对了，编译程序是需要 gcc 编译器的，所以安装方式一定要选择工作站哦 ^_^ ）。好了，解压后你发现在 u-boot.1.1.2 目录下有 Makefile 这个文件吧？让我们看看它里面的内容，最简单的方法就是 vi Makefile 了。我们要看的是它选择的是哪一个交叉编译器。可以看到这一项：&lt;br /&gt;ifeq ($(ARCH),arm)&lt;br /&gt;CROSS_COMPILE = arm-linux-&lt;br /&gt;看到吧，也就是说这里所用的交叉编译器是 arm-linux-gcc 了，（ u-boot 默认是用这个的，也有用 arm-elf-gcc 的，网上有个工具包 arm-elf-tools-20030314.sh, 我试过用它来编译，没有问题，顺便提一下， arm-elf-gcc 是用来编译 uClinux 内核的 工具来的）那你就下载一个 arm-linux- 的交叉编译器吧，我是在网上下载 cross-2.95.3.tar.bz2 这个文件，然后解压得到 2.95.3 版本的交叉编译工具的，具体设置如下（参考网上资料）：&lt;br /&gt;2 ）在宿主机上建立 arm-linux-gcc 交叉编译环境&lt;br /&gt;在 RedHat Linux 系统下以 root 用户登录，&lt;br /&gt;将 cross-2.95.3.tar.bz2 文件复制到 / 目录下，&lt;br /&gt;安装：&lt;br /&gt;# tar jxvf cross-2.95.3.tar.bz2&lt;br /&gt;这个命令会在你的 /usr/local/arm/2.95.3 目录下安装 arm-linux-gcc 交叉编译程序，&lt;br /&gt;然后在 PATH 变量中添加一项： /usr/local/arm/2.95.3/bin.&lt;br /&gt;[root@localhost root]# export ATH=/usr/local/arm/2.95.3/bin:$PATH&lt;br /&gt;或&lt;br /&gt;把 PATH=/usr/local/arm/2.95.3/bin:$PATH 添加到 /ETC/bash_profile 文件中&lt;br /&gt;或者&lt;br /&gt;在 /etc/bashrc 文件中添加一项 :&lt;br /&gt;export PATH=/usr/local/arm/2.95.3/bin:$PATH&lt;br /&gt;测试：&lt;br /&gt;把终端关闭，重新打开后执行如下命令：&lt;br /&gt;# arm-linux-gcc –v&lt;br /&gt;好了，建立好交叉编译环境后可以试着编译 u-boot 了&lt;br /&gt;&lt;br /&gt;这里提几个注意点：&lt;br /&gt;1. 不可用 winRAR 解压 u-boot-1.1.2.tar.bz2 或 u-boot-1.1.2.tar.gz 这种文件（就个可能新手会犯，一般熟悉 linux 命令的人应该都不会这样做吧，在此还是要提一下）&lt;br /&gt;2. 可能下载的文件有一些中间文件会阻碍编译的运行，所以在编译前最好来个彻底清除，在 u-boot.1.1.2 目录下运行命令： make distclean （其实这个命令在 Makefile 文件下就有）我当时为这个问题郁闷了很久，希望你们不会像我这样 ^_^ ） ;&lt;br /&gt;3 ，有些人为了方便想在 cygwin 下编译，但是经常在网上看到在这个虚拟平台下编译有很多的问题，要配置的东西也多，而且好像我用过那个 vi 没有 linux 环境下的好用，所以最好还是不要用这个软件了吧，如果你真的离不开 windows 的话可以像我这样装个虚拟机，在虚拟机下再装 linux 的系 统，具体参考这个网站）： http://fedora.linuxsir.org/doc/vmware/&lt;br /&gt;3 ）好了，现在开始测试你的交叉编译器搞好没有。在 u-boot. 1.1.2 目录下执行如下命令：&lt;br /&gt;1)Make distclean ( 再次强调 )&lt;br /&gt;2)Make B2_config( 随便再个现成的试试 ^_^)&lt;br /&gt;3)Make ( 没错的话应该会生成 u-boot.bin 文件，发生错误的话也不怕，只要细心看一下哪里错就行了， gcc 碰到错误后会退出编译，所以可以一个个错误来 改，一般的问题都是没找到编译器（可能你没装或者装的不对，例如人家用的是 arm-linux- 而你装的是 arm-elf- ，如果你装了的话看看你的环境 变量设好了没有，前面有讲，如果不关编译器的事的话那就再看看，一般是文件的后缀不对，有些文件后缀是大写的，例如 start.S 但是如果你的是 start.s 小写的话那当然找不到（解决方法很，把它改成大写就行了）。细心看吧，不用怕，它都有注明路径，很容易可以找到的） )&lt;br /&gt;如果以上步骤都无误的话那么恭喜你，你的交叉编译环境可以用来编译你的 u-boot 源代码了，可以开始以下阶段。&lt;br /&gt;&lt;br /&gt;3. 移植：&lt;br /&gt;说时迟那时快，现在开始移植工作 ( 以下是我一步步重新做一遍，力求说得详细点，感谢我吧 ^_^)&lt;br /&gt;我以 B2 板子的程序做为模板来做 .&lt;br /&gt;#cd u-boot- 1.1.2&lt;br /&gt;#cd board&lt;br /&gt;#cp -R dave myboard ( 这是我取的板子名字，可以换上你的，但是后面的也要跟着来换哦 ^_^)&lt;br /&gt;#cd myboard&lt;br /&gt;#mv B2 myboards 3c 44b0 ( 自己取个板子名 )&lt;br /&gt;#cd myboards 3c 44b0&lt;br /&gt;# mv B2.c myboards 3c 44b0.c&lt;br /&gt;修改 myboards 3c 44b0 里面的 Makefile, 把 B2 改成 myboards 3c 44b0 ，编译时如果报的其它类似找不到 B2 的错误也是把相应的 B2 改成 myboards 3c 44b0 来处理。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-1886772773311945442?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/1886772773311945442/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/u-boot.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1886772773311945442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1886772773311945442'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/u-boot.html' title='U-boot移植'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-7261165556429853915</id><published>2008-11-05T03:44:00.000-08:00</published><updated>2008-11-05T03:50:23.291-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arm'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>arm学习中需了解的一些名词</title><content type='html'>操作系统内核 Kernel&lt;br /&gt;　　Kernel 操作系统内核 操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程，并提供进程间的通信。下面列出了它的一些核心功能：&lt;br /&gt;　  事件的调度和同步。&lt;br /&gt;　　进程间的通信(消息传递)。&lt;br /&gt;　　存储器管理。&lt;br /&gt;　　进程管理。&lt;br /&gt;　　输入输出例程的管理。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-7261165556429853915?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/7261165556429853915/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/arm.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/7261165556429853915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/7261165556429853915'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/arm.html' title='arm学习中需了解的一些名词'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-6320846181044821458</id><published>2008-11-04T18:03:00.000-08:00</published><updated>2008-11-04T18:04:14.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='数据结构'/><category scheme='http://www.blogger.com/atom/ns#' term='C语言'/><title type='text'>c二叉树</title><content type='html'>#include &lt;stdio.h&gt;&lt;br /&gt;struct tree&lt;br /&gt;{&lt;br /&gt;    int data;&lt;br /&gt;    struct tree *left;&lt;br /&gt;    struct tree *right;&lt;br /&gt;};&lt;br /&gt;typedef struct tree treenode;&lt;br /&gt;typedef treenode *b_tree;&lt;br /&gt;&lt;br /&gt;b_tree creat()&lt;br /&gt;{&lt;br /&gt;    char ch;&lt;br /&gt;    b_tree newnode;&lt;br /&gt;    ch=getchar();&lt;br /&gt;    if (ch==' ') return(NULL);&lt;br /&gt;    else&lt;br /&gt;    {   newnode=(b_tree)malloc(sizeof(treenode));&lt;br /&gt;        newnode-&gt;data=ch;&lt;br /&gt;        newnode-&gt;left=creat(newnode);&lt;br /&gt;        newnode-&gt;right=creat(newnode);&lt;br /&gt;     }&lt;br /&gt;     return newnode;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void front_print(b_tree root)&lt;br /&gt;{&lt;br /&gt;    if(root!=NULL)&lt;br /&gt;    {&lt;br /&gt;        printf("[%c]",root-&gt;data);&lt;br /&gt;        front_print(root-&gt;left);&lt;br /&gt;        front_print(root-&gt;right);&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void middle_print(b_tree root)&lt;br /&gt;{&lt;br /&gt;    if(root!=NULL)&lt;br /&gt;    {&lt;br /&gt;        middle_print(root-&gt;left);&lt;br /&gt;        printf("[%c]",root-&gt;data);&lt;br /&gt;        middle_print(root-&gt;right);&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void back_print(b_tree root)&lt;br /&gt;{&lt;br /&gt;    if(root!=NULL)&lt;br /&gt;    {&lt;br /&gt;        back_print(root-&gt;left);&lt;br /&gt;        back_print(root-&gt;right);&lt;br /&gt;        printf("[%c]",root-&gt;data);&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int countleaf(b_tree root,int *i)&lt;br /&gt;{&lt;br /&gt;    if(root==NULL)&lt;br /&gt;        return 0;&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        if((root-&gt;left==NULL)&amp;&amp;(root-&gt;right==NULL))&lt;br /&gt;             (*i)++;&lt;br /&gt;        countleaf(root-&gt;left,i);&lt;br /&gt;        countleaf(root-&gt;right,i);&lt;br /&gt;        return *i;&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int locate(b_tree root,char x)&lt;br /&gt;{&lt;br /&gt;    if(root==NULL)&lt;br /&gt;        return 0;&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        if(root-&gt;data==x)&lt;br /&gt;            printf("\nSuccess!You research data is %c",x);&lt;br /&gt;        locate(root-&gt;left,x);&lt;br /&gt;        locate(root-&gt;right,x);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int t_depth(b_tree root)&lt;br /&gt;{&lt;br /&gt;    int dep1,dep2;&lt;br /&gt;    if(root==NULL)&lt;br /&gt;        return 0;&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        dep1=t_depth(root-&gt;left);&lt;br /&gt;        dep2=t_depth(root-&gt;right);&lt;br /&gt;        if(dep1&gt;dep2)&lt;br /&gt;            return(dep1+1);&lt;br /&gt;        else&lt;br /&gt;            return(dep2+1);&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;    b_tree root=NULL;&lt;br /&gt;    char x;&lt;br /&gt;    int select;&lt;br /&gt;    int depth=0;&lt;br /&gt;    int *i=0;&lt;br /&gt;    int j;&lt;br /&gt;    printf("Please set up a tree.\n");&lt;br /&gt;    printf("Notice:if no have crunode please input blank!!!\n");&lt;br /&gt;    root=creat();&lt;br /&gt;    do&lt;br /&gt;    {&lt;br /&gt;        printf("\n(1) Show the tree in a front-root order.");&lt;br /&gt;        printf("\n(2) Show the tree in a middle-root order.");&lt;br /&gt;        printf("\n(3) Show the tree in a back-root order.");&lt;br /&gt;        printf("\n(4) Show the the leafage number of tree.");&lt;br /&gt;        printf("\n(5) Locate a data in the tree.");&lt;br /&gt;        printf("\n(6) Show the depth of the tree.");&lt;br /&gt;        printf("\n(7) Exit");&lt;br /&gt;        printf("\nPlease select one:");&lt;br /&gt;        scanf("%d",&amp;select);&lt;br /&gt;        switch(select)&lt;br /&gt;        {&lt;br /&gt;            case 1: printf("\nThe tree is :");&lt;br /&gt;                    front_print(root);&lt;br /&gt;                    break;&lt;br /&gt;            case 2: printf("\nThe tree is :");&lt;br /&gt;                    middle_print(root);&lt;br /&gt;                    break;&lt;br /&gt;            case 3: printf("\nThe tree is :");&lt;br /&gt;                    back_print(root);&lt;br /&gt;                    break;&lt;br /&gt;            &lt;br /&gt;            case 4: *i=countleaf(root,i);&lt;br /&gt;                    printf("\nThe tree have %d leafage.\n",*i);&lt;br /&gt;                    *i=0;&lt;br /&gt;                    break;&lt;br /&gt;            case 5: getchar();&lt;br /&gt;                    printf("Please input the data you want to research: ");&lt;br /&gt;                    x=getchar();&lt;br /&gt;                    locate(root,x);&lt;br /&gt;                    break;&lt;br /&gt;            case 6: depth=t_depth(root);&lt;br /&gt;                    printf("The depth of the tree is %d.\n",depth);&lt;br /&gt;                    break;&lt;br /&gt; &lt;br /&gt;            case 7:&lt;br /&gt;                    break;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    while(select&lt;7);&lt;br /&gt;    printf("\n Press any key to quit...");&lt;br /&gt;    getch();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-6320846181044821458?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/6320846181044821458/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/c_04.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6320846181044821458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6320846181044821458'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/c_04.html' title='c二叉树'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-2931963424658964454</id><published>2008-11-03T23:52:00.001-08:00</published><updated>2008-11-03T23:52:47.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux，ftp'/><title type='text'>linux安装配置ftp</title><content type='html'>1.安装vsftpd&lt;br /&gt;直接从源里面安装，easy&lt;br /&gt;代码:&lt;br /&gt;sudo apt-get install vsftpd&lt;br /&gt;&lt;br /&gt;安装完毕后或许会自动生成一个帐户"ftp"，/home下也会增加一个文件夹。&lt;br /&gt;如果没有生成这个用户的话可以手动来，生成了就不用了：&lt;br /&gt;代码:&lt;br /&gt;sudo useradd -m ftp&lt;br /&gt;sudo passwd ftp&lt;br /&gt;&lt;br /&gt;有"ftp"帐户后还要更改权限&lt;br /&gt;代码:&lt;br /&gt;sudo chmod 777 /home/ftp&lt;br /&gt;&lt;br /&gt;在这个目录下我建立一个文件夹专门保存需要共享的内容&lt;br /&gt;&lt;br /&gt;2.配置文件&lt;br /&gt;通过sudo gedit /etc/vsftpd.conf修改。&lt;br /&gt;配置文件比较简单，如下&lt;br /&gt;代码:&lt;br /&gt;#独立模式启动&lt;br /&gt;listen=YES&lt;br /&gt;&lt;br /&gt;#同时允许4客户端连入，每个IP最多5个进程&lt;br /&gt;max_clients=200&lt;br /&gt;max_per_ip=4&lt;br /&gt;&lt;br /&gt;#不允许匿名用户访问，允许本地（系统）用户登录&lt;br /&gt;anonymous_enable=NO&lt;br /&gt;local_enable=YES&lt;br /&gt;write_enable=NO&lt;br /&gt;&lt;br /&gt;#是否采用端口20进行数据传输&lt;br /&gt;connect_from_port_20=YES&lt;br /&gt;&lt;br /&gt;#生成日志&lt;br /&gt;xferlog_enable=YES&lt;br /&gt;&lt;br /&gt;#指定登录转向目录&lt;br /&gt;local_root=/home/ftp/ftp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这样，在同局域网的电脑上，用我的IP地址，用帐号"ftp"和对应密码就可以登录了，密码是第一步里面passwd那句指定的。&lt;br /&gt;&lt;br /&gt;就这样就结束了，请大家拍砖！！[/code]&lt;br /&gt;&lt;br /&gt;----------------------------------&lt;br /&gt;对了，更改配置后不要忘了重启ftp服务 :D&lt;br /&gt;代码:&lt;br /&gt;sudo /etc/init.d/vsftpd restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-2931963424658964454?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/2931963424658964454/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/linuxftp.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2931963424658964454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2931963424658964454'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/linuxftp.html' title='linux安装配置ftp'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-3140344431031941494</id><published>2008-11-01T00:42:00.000-07:00</published><updated>2008-11-01T00:43:39.077-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='数据结构'/><category scheme='http://www.blogger.com/atom/ns#' term='C语言'/><title type='text'>数据结构C语言实现系列——线性表</title><content type='html'>数据结构C语言实现系列——线性表&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;typedef int elemType;&lt;br /&gt;/************************************************************************/&lt;br /&gt;/*                以下是关于线性表顺序存储操作的16种算法                        */&lt;br /&gt;/************************************************************************/&lt;br /&gt;struct List{&lt;br /&gt;    elemType *list;&lt;br /&gt;    int size;&lt;br /&gt;    int maxSize;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void againMalloc(struct List *L)&lt;br /&gt;{    &lt;br /&gt;    /* 空间扩展为原来的2倍，并由p指针所指向，原内容被自动拷贝到p所指向的存储空间 */&lt;br /&gt;    elemType *p = realloc(L-&gt;list, 2 * L-&gt;maxSize * sizeof(elemType));&lt;br /&gt;    if(!p){    /* 分配失败则退出运行 */&lt;br /&gt;        printf("存储空间分配失败！ ");&lt;br /&gt;        exit(1);&lt;br /&gt;    }&lt;br /&gt;    L-&gt;list = p;    /* 使list指向新线性表空间 */&lt;br /&gt;    L-&gt;maxSize = 2 * L-&gt;maxSize;    /* 把线性表空间大小修改为新的长度 */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 1.初始化线性表L，即进行动态存储空间分配并置L为一个空表 */&lt;br /&gt;void initList(struct List *L, int ms)&lt;br /&gt;{&lt;br /&gt;    /* 检查ms是否有效，若无效的则退出运行 */&lt;br /&gt;    if(ms &lt;= 0){&lt;br /&gt;        printf("MaxSize非法！ ");&lt;br /&gt;        exit(1);    /* 执行此函数中止程序运行，此函数在stdlib.h中有定义 */&lt;br /&gt;    }&lt;br /&gt;    L-&gt;maxSize = ms;    /* 设置线性表空间大小为ms */&lt;br /&gt;    L-&gt;size = 0;&lt;br /&gt;    L-&gt;list = malloc(ms * sizeof(elemType));&lt;br /&gt;    if(!L-&gt;list){&lt;br /&gt;        printf("空间分配失败！ ");&lt;br /&gt;        exit(1);&lt;br /&gt;    }&lt;br /&gt;    return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 2.清除线性表L中的所有元素，释放存储空间，使之成为一个空表 */&lt;br /&gt;void clearList(struct List *L)&lt;br /&gt;{&lt;br /&gt;    if(L-&gt;list != NULL){&lt;br /&gt;        free(L-&gt;list);&lt;br /&gt;        L-&gt;list = 0;&lt;br /&gt;        L-&gt;size = L-&gt;maxSize = 0;&lt;br /&gt;    }&lt;br /&gt;    return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 3.返回线性表L当前的长度，若L为空则返回０ */&lt;br /&gt;int sizeList(struct List *L)&lt;br /&gt;{&lt;br /&gt;    return L-&gt;size;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 4.判断线性表L是否为空，若为空则返回1, 否则返回0 */&lt;br /&gt;int emptyList(struct List *L)&lt;br /&gt;{&lt;br /&gt;    if(L-&gt;size ==0){&lt;br /&gt;        return 1;&lt;br /&gt;    }&lt;br /&gt;    else{&lt;br /&gt;        return 0;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 5.返回线性表L中第pos个元素的值，若pos超出范围，则停止程序运行 */&lt;br /&gt;elemType getElem(struct List *L, int pos)&lt;br /&gt;{&lt;br /&gt;    if(pos &lt; 1 || pos &gt; L-&gt;size){    /* 若pos越界则退出运行 */&lt;br /&gt;        printf("元素序号越界！ ");&lt;br /&gt;        exit(1);&lt;br /&gt;    }&lt;br /&gt;    return L-&gt;list[pos - 1];    /* 返回线性表中序号为pos值的元素值 */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 6.顺序扫描（即遍历）输出线性表L中的每个元素 */&lt;br /&gt;void traverseList(struct List *L)&lt;br /&gt;{&lt;br /&gt;    int i;&lt;br /&gt;    for(i = 0; i &lt; L-&gt;size; i++){&lt;br /&gt;        printf("%d ", L -&gt;list[i]);&lt;br /&gt;    }&lt;br /&gt;    printf(" "); &lt;br /&gt;    return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 7.从线性表L中查找值与x相等的元素，若查找成功则返回其位置，否则返回-1 */&lt;br /&gt;int findList(struct List *L, elemType x)&lt;br /&gt;{&lt;br /&gt;    int i;&lt;br /&gt;    for(i = 0; i &lt; L-&gt;size; i++){&lt;br /&gt;        if(L-&gt;list[i] == x){&lt;br /&gt;            return i;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    return -1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 8.把线性表L中第pos个元素的值修改为x的值，若修改成功返回1，否则返回0 */&lt;br /&gt;int updatePosList(struct List *L, int pos, elemType x)&lt;br /&gt;{&lt;br /&gt;    if(pos &lt; 1 || pos &gt; L-&gt;size){    /* 若pos越界则修改失败 */&lt;br /&gt;        return 0;&lt;br /&gt;    }&lt;br /&gt;    L-&gt;list[pos - 1] = x;&lt;br /&gt;    return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 9.向线性表L的表头插入元素x */&lt;br /&gt;void inserFirstList(struct List *L, elemType x)&lt;br /&gt;{&lt;br /&gt;    int i;&lt;br /&gt;    if(L-&gt;size == L-&gt;maxSize)&lt;br /&gt;    for(i = L-&gt;size - 1; i &gt;= 0; i--){&lt;br /&gt;        L-&gt;list[i + 1] = L -&gt;list[i];&lt;br /&gt;    }&lt;br /&gt;    L-&gt;list[0] = x;&lt;br /&gt;    L-&gt;size ++;&lt;br /&gt;    return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 10.向线性表L的表尾插入元素x */&lt;br /&gt;void insertLastList(struct List *L, elemType x)&lt;br /&gt;{&lt;br /&gt;    if(L-&gt;size == L -&gt;maxSize){    /* 重新分配更大的存储空间 */&lt;br /&gt;        againMalloc(L);&lt;br /&gt;    }&lt;br /&gt;    L-&gt;list[L-&gt;size] = x;    /* 把x插入到表尾 */&lt;br /&gt;    L-&gt;size++;    /* 线性表的长度增加１ */&lt;br /&gt;    return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 11.向线性表L中第pos个元素位置插入元素x，若插入成功返回１，否则返回０ */&lt;br /&gt;int insertPosList(struct List *L, int pos, elemType x)&lt;br /&gt;{&lt;br /&gt;    int i;&lt;br /&gt;    if(pos &lt; 1 || pos &gt; L-&gt;size + 1){    /* 若pos越界则插入失败 */&lt;br /&gt;        return 0;&lt;br /&gt;    }&lt;br /&gt;    if(L-&gt;size == L-&gt;maxSize){    /* 重新分配更大的存储空间 */&lt;br /&gt;        againMalloc(L);&lt;br /&gt;    }&lt;br /&gt;    for(i = L-&gt;size - 1; i &gt;= pos - 1; i--){&lt;br /&gt;        L-&gt;list[i + 1] = L-&gt;list[i];&lt;br /&gt;    }&lt;br /&gt;    L-&gt;list[pos - 1] = x;&lt;br /&gt;    L-&gt;size++;&lt;br /&gt;    return 1;&lt;br /&gt;}&lt;br /&gt;/* 12.向有序线性表L中插入元素x,　使得插入后仍然有序*/&lt;br /&gt;void insertOrderList(struct List *L, elemType x)&lt;br /&gt;{&lt;br /&gt;    int i, j;&lt;br /&gt;    /* 若数组空间用完则重新分配更大的存储空间 */&lt;br /&gt;    if(L-&gt;size == L-&gt;maxSize)&lt;br /&gt;    /* 顺序查找出x的插入位置 */&lt;br /&gt;    for(i = 0; i &lt; L-&gt;size; i++){&lt;br /&gt;        if(x &lt; L-&gt;list[i]){ &lt;br /&gt;            break;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    /* 从表尾到下标i元素依次后移一个位置， 把i的位置空出来 */&lt;br /&gt;    for(j = L-&gt;size - 1; j &gt;= i; j--)&lt;br /&gt;        L-&gt;list[j+1] = L-&gt;list[j];&lt;br /&gt;    /* 把x值赋给下标为i的元素 */    &lt;br /&gt;    L-&gt;list[i] = x;&lt;br /&gt;    /* 线性表长度增加1 */&lt;br /&gt;    L-&gt;size++;&lt;br /&gt;    return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 13.从线性表L中删除表头元素并返回它，若删除失败则停止程序运行 */&lt;br /&gt;elemType deleteFirstList(struct List *L)&lt;br /&gt;{&lt;br /&gt;    elemType temp;&lt;br /&gt;    int i;&lt;br /&gt;    if(L -&gt;size == 0){&lt;br /&gt;        printf("线性表为空，不能进行删除操作！ ");&lt;br /&gt;        exit(1);&lt;br /&gt;    }&lt;br /&gt;    temp = L-&gt;list[0];&lt;br /&gt;    for(i = 1; i &lt; L-&gt;size; i++)&lt;br /&gt;        L-&gt;list[i-1] = L-&gt;list[i];&lt;br /&gt;    L-&gt;size--;&lt;br /&gt;    return temp;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* 14.从线性表L中删除表尾元素并返回它，若删除失败则停止程序运行 */&lt;br /&gt;elemType deleteLastList(struct List *L)&lt;br /&gt;{&lt;br /&gt;    if(L -&gt;size == 0){&lt;br /&gt;        printf("线性表为空，不能进行删除操作！ ");&lt;br /&gt;        exit(1);&lt;br /&gt;    }&lt;br /&gt;    L-&gt;size--;&lt;br /&gt;    return L -&gt;list[L-&gt;size];        /* 返回原来表尾元素的值 */&lt;br /&gt;}&lt;br /&gt;/* 15.从线性表L中删除第pos个元素并返回它，若删除失败则停止程序运行 */&lt;br /&gt;elemType deletePosList(struct List *L, int pos)&lt;br /&gt;{&lt;br /&gt;    elemType temp;&lt;br /&gt;    int i;&lt;br /&gt;    if(pos &lt; 1 || pos &gt; L-&gt;size){        /* pos越界则删除失败 */&lt;br /&gt;        printf("pos值越界，不能进行删除操作！ ");&lt;br /&gt;        exit(1);&lt;br /&gt;    }&lt;br /&gt;    temp = L-&gt;list[pos-1];&lt;br /&gt;    for(i = pos; i &lt; L-&gt;size; i++)&lt;br /&gt;        L-&gt;list[i-1] = L-&gt;list[i];&lt;br /&gt;    L-&gt;size--;&lt;br /&gt;    return temp;&lt;br /&gt;}&lt;br /&gt;/* 16.从线性表L中删除值为x的第一个元素，若成功返回1，失败返回0 */&lt;br /&gt;int deleteValueList(struct List *L, elemType x)&lt;br /&gt;{&lt;br /&gt;    int i, j;&lt;br /&gt;    /* 从线性表中顺序查找出值为x的第一个元素 */&lt;br /&gt;    for(i = 0; i &lt; L-&gt;size; i++){&lt;br /&gt;        if(L-&gt;list[i] == x){    &lt;br /&gt;            break;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    /* 若查找失败，表明不存在值为x的元素，返回0 */&lt;br /&gt;    if(i == L-&gt;size){&lt;br /&gt;        return 0;&lt;br /&gt;    }&lt;br /&gt;    /* 删除值为x的元素L-&gt;list[i] */&lt;br /&gt;    for(j = i + 1; j &lt; L-&gt;size; j++){&lt;br /&gt;        L-&gt;list[j-1] = L-&gt;list[j];&lt;br /&gt;    }&lt;br /&gt;    L-&gt;size--;&lt;br /&gt;    return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/************************************************************************/&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;    int a[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};&lt;br /&gt;    int i;&lt;br /&gt;    struct List L;&lt;br /&gt;    initList(&amp;L, 5);&lt;br /&gt;    for(i = 0; i &lt; 10; i++){&lt;br /&gt;        insertLastList(&amp;L, a[i]);&lt;br /&gt;    }&lt;br /&gt;    insertPosList(&amp;L, 11, 48);        insertPosList(&amp;L, 1, 64);&lt;br /&gt;    printf("%d ", getElem(&amp;L, 1));&lt;br /&gt;    traverseList(&amp;L);&lt;br /&gt;    printf("%d ", findList(&amp;L, 10));&lt;br /&gt;    updatePosList(&amp;L, 3, 20);&lt;br /&gt;    printf("%d ", getElem(&amp;L, 3));&lt;br /&gt;    traverseList(&amp;L);&lt;br /&gt;    deleteFirstList(&amp;L);            deleteFirstList(&amp;L);&lt;br /&gt;    deleteLastList(&amp;L);                deleteLastList(&amp;L);&lt;br /&gt;    deletePosList(&amp;L, 5);            ;deletePosList(&amp;L, 7);&lt;br /&gt;    printf("%d ", sizeList(&amp;L));&lt;br /&gt;    printf("%d ", emptyList(&amp;L));&lt;br /&gt;    traverseList(&amp;L);&lt;br /&gt;    clearList(&amp;L);&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-3140344431031941494?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/3140344431031941494/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/11/c.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/3140344431031941494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/3140344431031941494'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/11/c.html' title='数据结构C语言实现系列——线性表'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-7694365983693876305</id><published>2008-10-29T04:35:00.000-07:00</published><updated>2008-11-04T01:12:32.769-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu linux安装配置NFS</title><content type='html'>1.安装NFS&lt;br /&gt;&lt;br /&gt;Ubuntu上默认是没有安装NFS服务器的，首先要安装NFS服务程序：&lt;br /&gt;&lt;br /&gt;xhylyx@xhylyx-desktop:~$ sudo apt-get install nfs-kernel-server&lt;br /&gt;&lt;br /&gt;安装nfs-kernel-server时，apt会自动安装nfs-common和portmap&lt;br /&gt;&lt;br /&gt;这样，宿主机就相当于NFS Server&lt;br /&gt;&lt;br /&gt;2.配置NFS&lt;br /&gt;&lt;br /&gt;(1)配置portmap&lt;br /&gt;&lt;br /&gt;方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉.&lt;br /&gt;&lt;br /&gt;方法2: $ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N.&lt;br /&gt;&lt;br /&gt;(2)配置/etc/hosts.deny&lt;br /&gt;&lt;br /&gt;禁止任何host（主机）能和你的NFS服务器进行NFS连接，加入：&lt;br /&gt;&lt;br /&gt;### NFS DAEMONS&lt;br /&gt;&lt;br /&gt;portmap:ALL&lt;br /&gt;&lt;br /&gt;lockd:ALL&lt;br /&gt;&lt;br /&gt;mountd:ALL&lt;br /&gt;&lt;br /&gt;rquotad:ALL&lt;br /&gt;&lt;br /&gt;statd:ALL&lt;br /&gt;&lt;br /&gt;(3)配 置/etc/hosts.allow&lt;br /&gt;&lt;br /&gt;允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机（连 接到NFS服务器上），也可以指定&lt;br /&gt;&lt;br /&gt;特定的IP地址,加入：&lt;br /&gt;&lt;br /&gt;### NFS DAEMONS&lt;br /&gt;&lt;br /&gt;portmap: 192.168.2.&lt;br /&gt;&lt;br /&gt;lockd: 192.168.2.&lt;br /&gt;&lt;br /&gt;rquotad: 192.168.2.&lt;br /&gt;&lt;br /&gt;mountd: 192.168.2.&lt;br /&gt;&lt;br /&gt;statd: 192.168.2.&lt;br /&gt;&lt;br /&gt;/etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似"mask"的意思. 现在/etc/hosts.deny中禁止所有用&lt;br /&gt;&lt;br /&gt;户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问.&lt;br /&gt;&lt;br /&gt;xhylyx@xhylyx-desktop:~$sudo /etc/init.d/portmap restart&lt;br /&gt;&lt;br /&gt;重启portmap daemon.&lt;br /&gt;&lt;br /&gt;(4)配置/etc/exports&lt;br /&gt;&lt;br /&gt;NFS挂载目录及权限由/etc/exports文件定义&lt;br /&gt;&lt;br /&gt;比如我要将将我的/opt/FriendlyARM/QQ2440/root_nfs目录让172.16.53.*的IP共享, 则在该文件末尾添加下列语句：&lt;br /&gt;&lt;br /&gt;/opt/FriendlyARM/QQ2440/root_nfs 172.16.53.*(rw,sync,no_root_squash)&lt;br /&gt;&lt;br /&gt;或者：/opt/FriendlyARM/QQ2440/root_nfs 172.16.53.0/24(rw,sync,no_root_squash)&lt;br /&gt;&lt;br /&gt;172.16.53.* 网段内的NFS客户端能够共享NFS服务器/opt/FriendlyARM/QQ2440/root_nfs目录内容.且有读,写权限, 并且该用户进入&lt;br /&gt;&lt;br /&gt;/opt/FriendlyARM/QQ2440/root_nfs目录后的身份为root&lt;br /&gt;&lt;br /&gt;最好加上sync, 否则 $ sudo exportfs -r 时会给出警告, sync是NFS的默认选项.&lt;br /&gt;&lt;br /&gt;root@xhylyx-desktop:/#showmount -e 查看NFS server的export list.&lt;br /&gt;&lt;br /&gt;若更改了/etc/exports, 运行 xhylyx@xhylyx-desktop:~$sudo exportfs -r 更新&lt;br /&gt;&lt;br /&gt;运行 xhylyx@xhylyx-desktop:~$ sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务&lt;br /&gt;&lt;br /&gt;(5)测试NFS&lt;br /&gt;&lt;br /&gt;可以尝试一下挂载本地磁盘&lt;br /&gt;&lt;br /&gt;我前面开始时已经提到了我的主机IP是172.16.53.214&lt;br /&gt;&lt;br /&gt;我现在试把/opt/FriendlyARM/QQ2440/root_nfs目录挂载到/mnt目录下&lt;br /&gt;&lt;br /&gt;root@xhylyx-desktop:/#mount -t nfs 172.16.53.214:/opt/FriendlyARM/QQ2440/root_nfs /mnt&lt;br /&gt;&lt;br /&gt;成功的挂载上的话你会在/mnt目录下看到root_nfs这个文件夹下的内容&lt;br /&gt;&lt;br /&gt;(6)错误解决&lt;br /&gt;# mount -t nfs -o ro,soft,intr fs:/share /mnt/fs/share&lt;br /&gt;&lt;br /&gt;mount: wrong fs type, bad option, bad superblock on fs04:/share,&lt;br /&gt;&lt;br /&gt;missing codepage or helper program, or other error&lt;br /&gt;&lt;br /&gt;(for several filesystems (e.g. nfs, cifs) you might&lt;br /&gt;&lt;br /&gt;need a /sbin/mount.&lt;type&gt; helper program)&lt;br /&gt;&lt;br /&gt;In some cases useful info is found in syslog - try&lt;br /&gt;&lt;br /&gt;dmesg | tail or so&lt;br /&gt;解决&lt;br /&gt;# apt-get install nfs-common&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-7694365983693876305?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/7694365983693876305/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/ubuntu-linuxnfs.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/7694365983693876305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/7694365983693876305'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/ubuntu-linuxnfs.html' title='ubuntu linux安装配置NFS'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-6448492467392971742</id><published>2008-10-28T06:15:00.000-07:00</published><updated>2008-10-28T06:18:02.626-07:00</updated><title type='text'>各大搜索引擎网站收录入口</title><content type='html'>&lt;a href="http://www.google.com/intl/zh-CN/add_url.html" target="_blank"&gt;Google网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.baidu.com/search/url_submit.html" target="_blank"&gt;Baidu 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://search.help.cn.yahoo.com/h4_4.html" target="_blank"&gt;Yahoo 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://search.msn.com/docs/submit.aspx?FORM=WSDD2" target="_blank"&gt;Live 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dmoz.com/World/Chinese_Simplified" target="_blank"&gt;Dmoz 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.coodir.com/accounts/addsite.asp" target="_blank"&gt;Coodir网站目录登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.alexa.com/site/help/webmasters" target="_blank"&gt;Alexa 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://db.sohu.com/regurl/regform.asp" target="_blank"&gt;Sogou 非商业登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ads.zhongsou.com/register/page.jsp" target="_blank"&gt;中国搜索网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://iask.com/guest/add_url.php" target="_blank"&gt;iAsk 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://indexed.webmasterhome.cn/" target="_blank"&gt;搜索引擎收录查询&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tellbot.yodao.com/report" target="_blank"&gt;有道搜索网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.accoona.com/public/submit_website.jsp" target="_blank"&gt;Accoona 网站登录&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.onebigdirectory.com/cgi-bin/dir/addurl.cgi" target="_blank"&gt;Onebigdirectory.com 搜索引擎批量提交&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.chainer.com/big5/submit/addurl.htm" target="_blank"&gt;Chainer.com 搜索引擎批量提交&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.freewebsubmission.com/" target="_blank"&gt;Freewebsubmission.com 搜索引擎批量提交&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-6448492467392971742?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/6448492467392971742/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/blog-post_28.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6448492467392971742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/6448492467392971742'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/blog-post_28.html' title='各大搜索引擎网站收录入口'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-800245795143726782</id><published>2008-10-28T05:30:00.001-07:00</published><updated>2008-10-28T05:30:49.733-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu快捷健</title><content type='html'>1、给立方体设置一个背景，进入 CompizConfig -&gt; 桌面立方体 -&gt; Appearance -&gt; Skydome 勾选 “Background”，在 Background Images 中选择一个背景图片即可。&lt;br /&gt;2、如果要让立方体增加一个倒影，勾选 CompizConfig -&gt; Cube Reflection 即可。&lt;br /&gt;Tips: 展示立方体默认快捷键是 Ctrl+Alt+鼠标左键拖动，Ctrl+Alt+方向键旋转立方体。&lt;br /&gt;3、使用神灯效果，这个效果最早出现在 Mac 上。&lt;br /&gt;勾选 CompizConfig -&gt; Animations&lt;br /&gt;Tips: 建议取消 CompizConfig -&gt; 最小化效果，勾选 CompizConfig -&gt; 渐弱窗口&lt;br /&gt;4、火焰字&lt;br /&gt;勾选 CompizConfig -&gt; Paint fire on the screen 即可。&lt;br /&gt;可以在 CompizConfig -&gt; Paint fire on the screen -&gt; Fire Particle Color 这里设置火焰的颜色，勾选 Randomly Colored Fire 会写出五彩斑斓的文字。&lt;br /&gt;Tips: 默认快捷键是 shift+win+鼠标左键，按 shift+win+c 是清除效果。&lt;br /&gt;5、桌面展示&lt;br /&gt;勾选 CompizConfig -&gt; Expo&lt;br /&gt;Tips: 默认快捷键是 win+e，鼠标移动到屏幕左上角也可以。&lt;br /&gt;6、雪花效果&lt;br /&gt;勾选 CompizConfig -&gt; Snow&lt;br /&gt;再到这里下载雪花材质，在 Snow -&gt; Textures 这里添加进去即可。&lt;br /&gt;7、菜单透明问题&lt;br /&gt;默认菜单是透明的，可以到 CompizConfig -&gt; General Options -&gt; Opacity Settings 这里进行设置。删除 Window opacities 里面的那行代码就可以了。&lt;br /&gt;8、3D 层叠窗口效果&lt;br /&gt;勾选 CompizConfig -&gt; 3D Windows&lt;br /&gt;9、给立方体中增加一些鱼儿&lt;br /&gt;勾选 CompizConfig -&gt; Cube Atlantis&lt;br /&gt;按住 Ctrl+Alt+鼠标左键拖动桌面，就能看见了。&lt;br /&gt;10、屏幕保护&lt;br /&gt;勾选 CompizConfig -&gt; Screen Saver&lt;br /&gt;有两种效果，一种是 Rotating cube 旋转立方体，一种是 Flying windows 飞行的窗口。&lt;br /&gt;11、3D 窗口切换效果&lt;br /&gt;勾选 CompizConfig -&gt; Shift Switcher&lt;br /&gt;在 Switcher mode 中可以选择两种切换效果，一种类似 Vista 的 Flip3D 切换，一种类似 Mac 的 CoverFlow 切换。&lt;br /&gt;Tips: 默认快捷键是：超级键+Tab&lt;br /&gt;* 打开主菜单 = Alt + F1&lt;br /&gt;* 运行 = Alt + F2&lt;br /&gt;* 显示桌面 = Ctrl + Alt + d&lt;br /&gt;* 最小化当前窗口 = Alt + F9&lt;br /&gt;* 最大化当前窗口 = Alt + F10&lt;br /&gt;* 关闭当前窗口 = Alt + F4&lt;br /&gt;* 截取全屏 = Print Screen&lt;br /&gt;* 截取窗口 = Alt + Print Screen&lt;br /&gt;默认特殊快捷键&lt;br /&gt;* 展示所有窗口程序 = F10&lt;br /&gt;* 展示当前窗口最上层程序 = F11&lt;br /&gt;* 展示当前窗口所有程序 = F12&lt;br /&gt;* 切换窗口 = Alt + Tab&lt;br /&gt;* 旋转3D桌面 = Ctrl + Alt + 左/右箭头（也可以把鼠标放在标题栏或桌面使用滚轮切换）&lt;br /&gt;* 旋转3D桌面（活动窗口跟随） = Ctrl + Shift + Alt + 左/右箭头&lt;br /&gt;* 手动旋转3D桌面 = Ctrl + Alt + 左键单击并拖拽桌面空白处&lt;br /&gt;* 窗口透明/不透明 = possible with the “transset” utility or Alt + 滚轮&lt;br /&gt;* 放大一次 = 超级键 + 右击&lt;br /&gt;* 手动放大 = 超级键 + 滚轮向上&lt;br /&gt;* 手动缩小 = 超级键 + 滚轮向下&lt;br /&gt;* 移动窗口 = Alt + 左键单击&lt;br /&gt;* 移动窗口时贴住边框 = 左键开始拖动后再 Ctrl + Alt&lt;br /&gt;* 调整窗口大小 = Alt + 中击&lt;br /&gt;* Bring up the window below the top window = Alt + middle-click&lt;br /&gt;* 动态效果减速 = Shift + F10&lt;br /&gt;* 水纹 = 按住 Ctrl+超级键&lt;br /&gt;* 雨点 = Shift-F9&lt;br /&gt;* 桌面展开＝ Ctrl + Alt + 下箭头，然后按住 Ctrl + Alt 和左/右箭头选择桌面&lt;br /&gt;* 火焰＝超级键+shift+左键拖动  取消：超级键+shift＋c&lt;br /&gt;* 选择多窗口,合并,切换,取消     超级键+s， 超级键+g ，超级键 +t，超级键＋u--------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-800245795143726782?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/800245795143726782/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/ubuntu.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/800245795143726782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/800245795143726782'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/ubuntu.html' title='ubuntu快捷健'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-1903903028083610315</id><published>2008-10-28T05:29:00.002-07:00</published><updated>2008-10-28T05:30:12.004-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>linux下宽带拨号上网</title><content type='html'>打开终端   pppoeconf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-1903903028083610315?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/1903903028083610315/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux_475.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1903903028083610315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1903903028083610315'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux_475.html' title='linux下宽带拨号上网'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-4495035744828934571</id><published>2008-10-28T05:29:00.001-07:00</published><updated>2008-10-28T05:29:46.735-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>linux下调节声音大小</title><content type='html'>&lt;div class="yp-main-text" id="yp-article-text"&gt; &lt;p&gt;&lt;span style="font-family:Arial;"&gt;1.打开终端，输入：alsamixer &lt;/span&gt;&lt;/p&gt; &lt;span style="font-family:Arial;"&gt; &lt;p&gt;&lt;br /&gt;2.用左右方向键，选择项目; 用上下键调节大小。&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-4495035744828934571?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/4495035744828934571/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux_5138.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4495035744828934571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4495035744828934571'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux_5138.html' title='linux下调节声音大小'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-1262429239352859290</id><published>2008-10-28T05:28:00.002-07:00</published><updated>2008-10-28T05:29:17.197-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>linux下删除非空文件夹</title><content type='html'>删除&lt;span&gt;文件&lt;/span&gt;用：rm 文件名&lt;br /&gt;&lt;br /&gt;删除文件夹用：rmdir 文件夹名&lt;br /&gt;&lt;br /&gt;但是rmdir不能删除非空的文件夹，那如何删除非空文件夹呢：&lt;br /&gt;&lt;br /&gt;&lt;span&gt;命令&lt;/span&gt;：rm -rf 非空文件夹名&lt;br /&gt;&lt;br /&gt;复制文件夹&lt;br /&gt;CP命令&lt;br /&gt;格式: CP [选项] 源文件或目录 目的文件或目录&lt;br /&gt;选项说明:-b 同名,备分原来的文件&lt;br /&gt;-f 强制覆盖同名文件&lt;br /&gt;-r 按递归方式保留原目录&lt;span&gt;结构&lt;/span&gt;复制文件&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-1262429239352859290?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/1262429239352859290/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux_28.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1262429239352859290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/1262429239352859290'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux_28.html' title='linux下删除非空文件夹'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-4203299348689000573</id><published>2008-10-28T05:28:00.001-07:00</published><updated>2008-10-28T05:28:46.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='环境变量'/><title type='text'>/etc/profile环境变量配置解析</title><content type='html'>&lt;p&gt;与环境变量相关的文件可能还会有/etc/bashrc等，不过这是shell变量，是局部的，对于特定的shell器作用。/etc/profile是全局的，适用于所有的shell。 &lt;/p&gt;&lt;p&gt;profile文件会告诉shell使用什么语言，什么shell，命令的搜索路径等等。 &lt;/p&gt;&lt;p&gt;一些标准的环境变量： &lt;/p&gt;&lt;p&gt;SHELL 默认shell &lt;/p&gt;&lt;p&gt;LANG 默认语言 &lt;/p&gt;&lt;p&gt;PATH linux寻找命令的默认路径，一般包括/bin,/usr/bin,/sbin,/usr/sbin, &lt;/p&gt;&lt;p&gt;/usr/X11R6/bin,/opt/bin,/usr/local/bin等。用户可以自行添加， &lt;/p&gt;&lt;p&gt;如/home/bin等. &lt;/p&gt;&lt;p&gt;MANPATH man手册的默认路径 &lt;/p&gt;&lt;p&gt;INPUTRC 默认键盘映象，详见/etc/inputrc &lt;/p&gt;&lt;p&gt;BASH_ENV bash shell的环境变量，通常在~/.bashrc中 &lt;/p&gt;&lt;p&gt;DISPLAY X窗口适用的控制台，DISPLAY=：0对应于控制台F7,DISPLAY=：1对应于控制 &lt;/p&gt;&lt;p&gt;台F8,DISPLAY=server：0向远程计算机发送GUI应用程序。 &lt;/p&gt;&lt;p&gt;COLORTERM GUI中的默认终端，通常是gnome-terminal。 &lt;/p&gt;&lt;p&gt;USER 自动设置当前登陆用户的用户名。 &lt;/p&gt;&lt;p&gt;LONGNAME 通常设置为$USER &lt;/p&gt;&lt;p&gt;MAIL 设置特定$USR的标准邮件目录 &lt;/p&gt;&lt;p&gt;HOSTNAME 设置为/bin/hostname的命令输出 &lt;/p&gt;&lt;p&gt;HISTSIZE 设置为history命令记住的命令数 &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;例子： &lt;/p&gt;&lt;p&gt; &lt;/p&gt;            &lt;pre&gt; #&lt;br /&gt;# /etc/profile&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;#修改或添加PATH可以自定义命令的寻找路径，如果你不想将可执行文件添加到默认目录中但又可以在终端中使用命&lt;br /&gt;#令，那就改吧。&lt;br /&gt;export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/usr/local/bin"&lt;br /&gt;&lt;br /&gt;export MANPATH="/usr/man:/usr/X11R6/man"&lt;br /&gt;export LESSCHARSET="latin1"&lt;br /&gt;export INPUTRC="/etc/inputrc"&lt;br /&gt;export LESS="-R"&lt;br /&gt;&lt;br /&gt;# Locale settings (find your locale with ''locale -a'')&lt;br /&gt;export LANG="zh_CN" #修改这里可以改变系统的默认使用语言&lt;br /&gt;export LC_COLLATE="C"&lt;br /&gt;&lt;br /&gt;export COLUMNS LINES&lt;br /&gt;&lt;br /&gt;export PS1=''[\u@\h \W]\$ ''&lt;br /&gt;export PS2=''&gt; ''&lt;br /&gt;&lt;br /&gt;umask 022&lt;br /&gt;……&lt;br /&gt;……&lt;br /&gt;# End of file&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-4203299348689000573?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/4203299348689000573/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/etcprofile.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4203299348689000573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4203299348689000573'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/etcprofile.html' title='/etc/profile环境变量配置解析'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-2033045090427450557</id><published>2008-10-28T05:26:00.004-07:00</published><updated>2008-10-28T05:27:49.121-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>linux下部分文件解压方法</title><content type='html'>&lt;div class="yp-main-text" id="yp-article-text"&gt; &lt;p&gt;.tar&lt;br /&gt;解包： tar xvf FileName.tar&lt;br /&gt;打包：tar cvf FileName.tar DirName&lt;br /&gt;（注：tar是打包，不是压缩！）&lt;br /&gt;---------------------------------------------&lt;br /&gt;.gz&lt;br /&gt;解压1：gunzip FileName.gz&lt;br /&gt;解压2：gzip -d FileName.gz&lt;br /&gt;压缩：gzip FileName&lt;br /&gt;.tar.gz&lt;br /&gt;解压：tar zxvf FileName.tar.gz&lt;br /&gt;压缩：tar zcvf FileName.tar.gz DirName&lt;br /&gt;---------------------------------------------&lt;br /&gt;.bz2&lt;br /&gt;解压1：bzip2 -d FileName.bz2&lt;br /&gt;解压2：bunzip2 FileName.bz2&lt;br /&gt;压缩： bzip2 -z FileName&lt;br /&gt;.tar.bz2&lt;br /&gt;解压：tar jxvf FileName.tar.bz2&lt;br /&gt;压缩：tar jcvf FileName.tar.bz2 DirName&lt;br /&gt;---------------------------------------------&lt;br /&gt;.bz&lt;br /&gt;解压1：bzip2 -d FileName.bz&lt;br /&gt;解压2：bunzip2 FileName.bz&lt;br /&gt;压缩：未知&lt;br /&gt;.tar.bz&lt;br /&gt;解压：tar jxvf FileName.tar.bz&lt;br /&gt;压缩：未知&lt;br /&gt;---------------------------------------------&lt;br /&gt;.Z&lt;br /&gt;解压：uncompress FileName.Z&lt;br /&gt;压缩：compress FileName&lt;br /&gt;.tar.Z&lt;br /&gt;解压：tar Zxvf FileName.tar.Z&lt;br /&gt;压缩：tar Zcvf FileName.tar.Z DirName&lt;br /&gt;---------------------------------------------&lt;br /&gt;.tgz&lt;br /&gt;解压：tar zxvf FileName.tgz&lt;br /&gt;压缩：未知&lt;br /&gt;.tar.tgz&lt;br /&gt;解压：tar zxvf FileName.tar.tgz&lt;br /&gt;压缩：tar zcvf FileName.tar.tgz FileName&lt;br /&gt;---------------------------------------------&lt;br /&gt;.zip&lt;br /&gt;解压：unzip FileName.zip&lt;br /&gt;压缩：zip FileName.zip DirName&lt;br /&gt;---------------------------------------------&lt;br /&gt;.rar&lt;br /&gt;解压：rar a FileName.rar&lt;br /&gt;压缩：r ar e FileName.rar&lt;/p&gt;&lt;p&gt;&lt;br /&gt;rar请到：&lt;a href="http://www.rarsoft.com/download.htm"&gt;http://www.rarsoft.com/download.htm&lt;/a&gt; 下载！&lt;br /&gt;解压后请将rar_static拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：&lt;br /&gt;[root@www2 tmp]# cp rar_static /usr/bin/rar&lt;br /&gt;---------------------------------------------&lt;br /&gt;.lha&lt;br /&gt;解压：lha -e FileName.lha&lt;br /&gt;压缩：lha -a FileName.lha FileName&lt;/p&gt;&lt;p&gt;lha请到：&lt;a href="http://www.infor.kanazawa-it.ac.jp/.../lhaunix/"&gt;http://www.infor.kanazawa-it.ac.jp/.../lhaunix/&lt;/a&gt;下载！&lt;br /&gt;&gt;解压后请将lha拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：&lt;br /&gt;[root@www2 tmp]# cp lha /usr/bin/&lt;br /&gt;---------------------------------------------&lt;br /&gt;.rpm&lt;br /&gt;解包：rpm2cpio FileName.rpm | cpio -div&lt;br /&gt;---------------------------------------------&lt;br /&gt;.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh&lt;br /&gt;.lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea&lt;br /&gt;解压：sEx x FileName.*&lt;br /&gt;压缩：sEx a FileName.* FileName&lt;/p&gt;&lt;p&gt;sEx只是调用相关程序，本身并无压缩、解压功能，请注意！&lt;br /&gt;sEx请到： &lt;a href="http://sourceforge.net/projects/sex"&gt;http://sourceforge.net/projects/sex&lt;/a&gt;下载！&lt;br /&gt;解压后请将sEx拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：&lt;br /&gt;[root@www2 tmp]# cp sEx /usr/bin/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;参考文献：Linux 文件压缩工具指南&lt;br /&gt;（其实看帮助是最好的方法，一般各个命令都可以用“--help”参数得到常用使用方法！）&lt;br /&gt;发布人:会游泳的鱼 来自:LinuxByte&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-2033045090427450557?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/2033045090427450557/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2033045090427450557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2033045090427450557'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linux.html' title='linux下部分文件解压方法'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-399667425877325169</id><published>2008-10-28T05:26:00.003-07:00</published><updated>2008-10-28T05:26:56.575-07:00</updated><title type='text'>交叉编译环境搭建</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: 宋体;"&gt;安装交叉编译器&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: 宋体;"&gt;从&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;下载交叉编译器&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;cross-3.2.tar.bz2&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;，&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;存放在&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;/usr/local&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;目录下。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="font-size:100%;"&gt;  切换致该目录：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;  ＃ cd&lt;span style=""&gt; &lt;/span&gt;/usr/local&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;  ＃ mkdir&lt;span style=""&gt; &lt;/span&gt;arm&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: 宋体;"&gt;然后解压&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;cross-3.2.tar.bz2&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;  ＃ tar jxvf cross-3.2.tar.bz2 –C /usr/local/arm&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、把交叉编译器的路径加入到&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;PATH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;。（两种方法&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;，&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;b&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、＃&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;export PATH=$PATH:/usr/local/arm/2.95.3/bin&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style=""&gt;&lt;span style="font-family:Times New Roman;"&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;注：（这只能在当前的终端下才是有效的，）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;b&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、修改&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;/etc/profile&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;文件：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;      ＃ &lt;/span&gt;vi /etc/profile&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;增加路径设置，在末尾添加如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;             &lt;/span&gt;export PATH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;＝&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;$PATH:/usr/local/arm/2.95.3/bin&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、使新的环境变量生效。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt; ＃ source /etc/profile&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、检查是否将路径加入&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;PATH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;的方法。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;        ＃ echo $PATH&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: 宋体;"&gt;如果显示的内容中有&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;/usr/local/arm/bin&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;，说明已经将交叉编译器的路径加入&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;PATH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;。自此，交叉编译环境安装完成。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、测试。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="font-size:100%;"&gt;下面我们就来测试一个简单的例子。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;/*Hello.c*/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;#include &lt;stdio.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;int main()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;printf(“hello word!\n”);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style=""&gt;      &lt;/span&gt;return 0;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;font-size:100%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="font-size:100%;"&gt;程序输好以后确认无误，保存。进入程序文件所在目录&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt; ＃ arm-linux-gcc hello.c&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;–&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;o hello&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;（&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;-o&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;可以理解为“目标为生成”）&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;arm-linux-gcc&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;是第一次出现，有人可能会问这个哪里来的，不妨打开刚才安装的交叉编译工具目录&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;/usr/local/arm-linux/arm-linux/bin/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;可以发现里面有一个&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;arm-linux-gcc&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;文件，这个就是针对&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;arm&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;的&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;CPU&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;的&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;gcc&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;编译器了。以后用其它编译工具链式也可以通过这种方法看看其编译器是什么了。编译好了以后就可以下载到目标机进行测试了。当然也可以先在&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;PC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;机上测试正误。用&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;gcc hello.c&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;–&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;o hello&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;就可以生成&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;PC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;机上程序了，在运行&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;./hello&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;就可以发现终端显示&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;hello!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;字样。用&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;arm-linux-gcc&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;编译的程序在&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;PC&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;机上是不能运行的，运行后给出错误报告：无法执行二进制文件。说明经过交叉编译环境编译出的文件是硬件可执行的二进制代码文件&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Times New Roman;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-399667425877325169?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/399667425877325169/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/blog-post.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/399667425877325169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/399667425877325169'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/blog-post.html' title='交叉编译环境搭建'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-4313093489188141081</id><published>2008-10-28T05:26:00.001-07:00</published><updated>2008-10-28T05:26:27.503-07:00</updated><title type='text'>gcc编译失败解决</title><content type='html'>刚装好的GCC什么都不能编译，因为没有一些必须的头文件，所以要安装build-essential，&lt;span style="cursor: pointer;"&gt;安装&lt;/span&gt;了这个包会安装上g++，libc6-dev，linux-libc-dev，libstdc++6-4.1-dev等好多必须的软件和头文件。&lt;br /&gt;　　sudo apt-get install build-essential&lt;br /&gt;　　安装完成后写一个C语言程序testc.c测试一下。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-4313093489188141081?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/4313093489188141081/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/gcc.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4313093489188141081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/4313093489188141081'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/gcc.html' title='gcc编译失败解决'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-8164771203377488125</id><published>2008-10-28T05:25:00.001-07:00</published><updated>2008-10-28T05:25:56.684-07:00</updated><title type='text'>linux下安装ssh</title><content type='html'>ssh localhost&lt;br /&gt;&lt;br /&gt;如果出现以下错误，则很可能是因为还没有安装ssh-server：&lt;br /&gt;&lt;br /&gt;ssh: connect to host localhost port 22: Connection refused&lt;br /&gt;&lt;br /&gt;安装SSH-server：&lt;br /&gt;&lt;br /&gt;sudo apt-get install openssh-server&lt;br /&gt;&lt;br /&gt;启动SSH-Server&lt;br /&gt;&lt;br /&gt;sudo /etc/init.d/ssh start&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-8164771203377488125?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/8164771203377488125/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linuxssh.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8164771203377488125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/8164771203377488125'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linuxssh.html' title='linux下安装ssh'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17170217052378517.post-2833643787926059296</id><published>2008-10-28T05:23:00.000-07:00</published><updated>2008-10-28T05:24:43.488-07:00</updated><title type='text'>linux下用bind9配置dns服务器</title><content type='html'>&lt;div&gt; &lt;p&gt;linux下bind9配置dns服务器——xxh&lt;/p&gt; &lt;p&gt;1.安装bind9：&lt;/p&gt; &lt;p&gt;sudo apt-get install bind9&lt;/p&gt; &lt;p&gt;2.修改named.conf.local文件：&lt;/p&gt; &lt;p&gt;zone "local.com" {&lt;br /&gt;        type master;&lt;br /&gt;        file "/etc/bind/db.local.com";&lt;br /&gt;        };&lt;br /&gt;zone "206.10.10.in-addr.arpa" {&lt;br /&gt;     type master;&lt;br /&gt;     file "/etc/bind/db.10.10.206";&lt;br /&gt;};&lt;/p&gt; &lt;p&gt;&lt;br /&gt;3.创建db.local.com文件：&lt;/p&gt; &lt;p&gt;&lt;br /&gt;$TTL    604800&lt;br /&gt;@       IN      SOA     local.com. root.local.com. (&lt;br /&gt;                              1         ; Serial&lt;br /&gt;                         604800         ; Refresh&lt;br /&gt;                          86400         ; Retry&lt;br /&gt;                        2419200         ; Expire&lt;br /&gt;                         604800 )       ; Negative Cache TTL&lt;br /&gt;;&lt;br /&gt;@       IN      NS      local.com.&lt;br /&gt;@       IN      A       10.10.206.1&lt;br /&gt;www     IN      A       10.10.206.1&lt;br /&gt;xxh     IN      A       10.10.206.105&lt;/p&gt; &lt;p&gt;3.创建db.10.10.206文件：&lt;/p&gt; &lt;p&gt;$TTL    604800&lt;br /&gt;@       IN      SOA     local.com. root.local.com. (&lt;br /&gt;                              1         ; Serial&lt;br /&gt;                         604800         ; Refresh&lt;br /&gt;                          86400         ; Retry&lt;br /&gt;                        2419200         ; Expire&lt;br /&gt;                         604800 )       ; Negative Cache TTL&lt;br /&gt;;&lt;br /&gt;@       IN      NS      local.com&lt;br /&gt;1       IN      PTR     local.com&lt;br /&gt;105     IN      PTR     xxh.local.com&lt;/p&gt; &lt;p&gt;4.修改本机dns：&lt;/p&gt; &lt;p&gt;sudo vi /etc/resolv.conf&lt;/p&gt; &lt;p&gt;search local.com&lt;br /&gt;nameserver 10.10.206.1&lt;/p&gt; &lt;p&gt;5.重启bind：&lt;/p&gt; &lt;p&gt;sudo /etc/init.d/bind9 restart&lt;/p&gt; &lt;p&gt;6.查看是否成功：&lt;/p&gt; &lt;p&gt;nslookup www.&lt;a href="http://www.local.com/"&gt;local.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;若返回：&lt;/p&gt; &lt;p&gt;&lt;a&gt;xxh@root:/etc/bind$&lt;/a&gt; nslookup &lt;a href="http://www.local.com/"&gt;www.local.com&lt;/a&gt;&lt;br /&gt;Server:         10.10.206.1&lt;br /&gt;Address:        10.10.206.1#53&lt;/p&gt; &lt;p&gt;Name:   &lt;a href="http://www.local.com/"&gt;www.local.com&lt;/a&gt;&lt;br /&gt;Address: 10.10.206.1&lt;/p&gt; &lt;p&gt;配置成功。&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17170217052378517-2833643787926059296?l=cdxxh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdxxh.blogspot.com/feeds/2833643787926059296/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linuxbind9dns.html#comment-form' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2833643787926059296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17170217052378517/posts/default/2833643787926059296'/><link rel='alternate' type='text/html' href='http://cdxxh.blogspot.com/2008/10/linuxbind9dns.html' title='linux下用bind9配置dns服务器'/><author><name>xxh</name><uri>http://www.blogger.com/profile/00381934134550185926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
