




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C编程问题精粹 UnixC编程问题精粹 对于c语言,有人认为它已经落伍了.对于这个问题,仁者见仕,智者见智.的确,c+比c有更强大的诸多优势.但c+是建立在c之上的.这也是herbert schildt所著的在全世界畅销不衰的原因.更何况,要深入学习linux就必需要有相当的c功底.(这也是我搜集整理本文的根由:-) 现结合个人在编程中的体会,为使新手少走弯路,为老手锦上添花,因此无论你是使用c或c+编程,也无论你是程序设计的初学者还是成熟的专业人员,均会发现,本文将会对你有所收益.当然,我尽力写得清晰易懂,又不古板. 我爱c.(正如世人爱上帝一样:-). 第一章:前言 对于c语言,有人认为它已经落伍了.对于这个问题,仁者见仕,智者见智.的确,c+比c有更强大的诸多优势.但c+是建立在c之上的.这也是herbert schildt所著的在全世界畅销不衰的原因.更何况,要深入学习linux就必需要有相当的c功底.(这也是我搜集整理本文的根由:-) 现结合个人在编程中的体会,为使新手少走弯路,为老手锦上添花,因此无论你是使用c或c+编程,也无论你是程序设计的初学者还是成熟的专业人员,均会发现,本文将会对你有所收益.当然,我尽力写得清晰易懂,又不古板. 我爱c.(正如世人爱上帝一样:-). 你可以在上获得此帖的文本.而其html版本正在赶制之中. 第二章:约定 专业的源程书写风格. 先看看世界级c大师的源程书写风格.如 steve maguire 就有许多不错的建议. 倡导使用易于理解的匈牙利式的命名约定. 所有的字符变量均以ch开始;如: charch_*; 所有的字节变量均冠以b;如: byteb_*; 所有的长字变量均冠以l; 如:longl_*; 所有的指针变量均冠以p; 如:char *p_ch_*; 建议类型派生出的基本名字之后加上一个以大写字母开头的标签.如: 分析char *ppchmydata; 其让人一眼就能看出它*一个指向字符指针mydata的指针. 匈牙利式命名的最大不足是难念:-( .但相对于不是总统演讲稿的c源程来说,这又算得了什么?想想看以下的数据命名: chara,b,c; longd,e,f; 倡导规范书写. 如果你思如泉涌,而不去也不及顾虑书写格式,那也没关系.在将其交出去之前,用cb命令格式化你的源程.虽然源程的格式不会影响到你编译结果的正确性,但切记,能让其他的程序员能轻松地阅读它.否则没人会理你的. 关于cb命令的更多用法,可以用man cb来参考其手册页. 当然除了cb之外,还有更多更好的.但cb是你在任何unix(linux)上都找得到的.更何况它并不差第三章:开始任务 开始任务之前,先做个深呼吸! 其他文档你准备好了吗? 你是不是除了c源程之外一无所有了吗?兵马未动,粮草先行.你必须先清楚该程序所要完成的功能.在开始写程序之前,对程序的功能应有规范说明.书写规范书和确知程序功能的一个方法是先编写相应的操作手册.如果你是一人单干,劝你首先写需求书.切记切记,这对你意味着事半功倍的大好事. 一个实例:我计划为本行的信贷子功能模块打一个补丁.我用10周的时间用来写规划书,需求书,操作流程,使用说明等等文档.之后用2周的时间编写程序,在初步测试(1周)后递交给各信贷部门测试使用.然后根据反馈的信息再更改相应文档,并根据文档修改源程.6个月后发布正式版. 一定该遵循ansi标准吗? 如果你仅使用ansi的标准首标文件,恭喜你,你的程序有着全世界范围内的广泛支持和兼容.光明无限.但你必须在通用与专用之间做出取舍,对不起,我帮不了你. 我的原则是:核心用ansi,界面按需而取.这样在转换平台时仅需另编用户界面而已.实用至上嘛. 附:ansi 标准c头文件 是不是很寒酸? 再续前缘? 在得到新任务之后并在开始该新任务之前应马上回想有哪些是曾经拥有的.旧调重弹远比另起炉灶来的高效与环保. 是否该有自已的库? 我的答案是应该有自已的特色库,并与ansi兼容.与3.8不同的是,你仅需在源程序之后附上自已的专用库就可以了.其次在有了自已的库后,源码会很精炼的.不用去羡慕别人了吧. 要学会条件编译.注意你的平台特性.(高手的标志?) 除非你确定你要写的程序是在某特定的os特定的硬件平台而量身定做.否则应注意数据类型的长度,精度都是不同的,不要想当然.有时甚至是不同的编译器的差异都要考虑考虑. . .(欢迎您来充实此处空白) . 好了,在任务中,又有哪些细节呢? 我是不是葛郎台? 不要那么吝啬.在源程序中加入详尽的注释以使自己和他人即使在许多年以后仍能读明白它是什么样的程序. 用注释行分离各个函数. 删除不需要的代码时要小心. 一个好建议是:使用#ifdef del,而不是简单地注释掉甚至是粗暴地直接dd.如果你是使用/* . */,但一旦要删除的代码有很多行,或注释中以有注释时,这就可能不那么好使了. 如何给源程序文件命名? 表现特色且不与任何原有应用名相同.一个简单地方法就是试试看,系统有什么样地反应? 一次只修改一个地方. 一次只编写一个单一功能的函数。 编写通用程序. 只有当程序编写完,并且完成了所需要的性能要求之后,再反过头来优化该程序. 不要使用a.out作为结果.你大可以使用与源程相同的可执行文件名. 是否一定要用vi编辑? linux下有许多专用编程编辑器.它们能使你有更高的效率和更低的低级输入错误,但我还是要劝你至少要熟练掌握vi.毕竟vi遍地开花. 协同作业.请相信,你不是在孤军作战.因此,你有必要熟练掌握一些其它的工具第四章:使用lint lint没有你想象中的那样糟糕.相反,一旦源程序形成了没有lint错误的形式,将很容易保持下去,并享受到如此而带来的好处. 在cc(gcc)之前就应使用lint. lint是一语法检查程序,对于这个多嘴的婆婆来说,你应有足够的耐心.虽然你知道自已在干什么,但在cc之前使用lint总是一个好习惯. lint有哪些特色? 在编译之前使用lint的重要原因是lint不但能发现ansi c中的语法错误,而且也能指出潜在的问题或是难于移植于另一机器的代码问题.除了能指出简单语法错误之外,linut还能基于以下原因指出另外的错误: a.无法达到的语句. b.没有进入循环. c.没有被使用的变量. d.函数参数从未使用. e.没有赋值之前自动使用参数. f.函数在有些地方有返回值,但在其他地方不返回. g.函数调用在不同地方使得参数个数不同. h.错误使用结构指针. i.模糊使用操作符优先级. 呵呵呵,挺有用的吧! 如何控制lint的输出? 有时lint会有一大屏一大屏的警告信息.但似乎并未指出错误.为了找出潜在的错误则需费心费力地浏览这些大量的警告信息. 但如果你的程序会分出几个独立的模块,在初级启动lint时不要用可选项.当对这些模块进行更改或扩充时,可以忽略与代码无关的某些警告.为此可用以下选择项: -h对判别是否有错,类型是否正确不给出启发式测试. -v不管函数中没有定义的参数 -u 不管被使用的变量和函数没有定义或定义了但没有使用. 干脆,在程序中插入指令来影响lint运行.它看样子有些像注释. /*notreached*/ 不可达到的代码不给信息说明. /*varargsn*/ 函数的变量个数不作通常的检查,只检查开始n个参数的数据类型. /*nostruct*/ 对下一个表达式不作严格类型检查. /*argused*/下一函数中,不给出没被使用参数的警告信息. /*lintlibrary*/置于文件的开头,它将不给出没被使用函数的警告信息. 关于lint的更多用法,请用man lint来获知第五章:使用make 什么是make? unix(linux)是一个天生的开发平台,我为此感到高兴.make是一个强力的工具.它能依赖的源代码块并组成一程序,使得很容易建立一可执行程序.make就是这种有依赖关系的部分和代码之间所作的规格说明. 所有的程序都要使用make? 是的.尽管你只有几个简单的模块,但你需要有一种结构来支持它从简单走向复杂.除非你的程序已经盖棺定论. makefile由哪些组成? makefile由以下几个部分组成: 注释. 使用#符号插入.make将忽略#之后的任何内容以及其后的return键. 变量. make允许定义与shell变量类似的有名变量.比如,你定义了sources=prog.c,那么该变量的值$(scoures)就包含了源文件名. 依赖关系. 左边是目标模块,后接一冒号.再接与该模块有依赖关系的模块. 命令. 以tab键开始(即使用相同数量的空格也不能代替它). makefile示例 下面介绍一个简单的示例来说明make的用法.假设你的程序有两个源文件main.c和myc.c,一个位於子目录include下的头文件myhead.h,一个库由*源文件myrout1.c,myrout2.c,myrout3.c产生. 其makefile文件为: #一个基本的makefile文件. #其中包括个人的头文件和个人库. headers=include/myhead.h sources=main.c myc.c product=$(home)/bin/tool lib=myrout.a libsoures=myrout1.c myrout2.c myrout3.c cc=cc cflags=-g all:$(product) $(product):$(sources) $(cc)$(cflags) -o $(product)$(sources) lint:$(product) lint $(sources)$(libsources) 哈哈,挺象shell编程的.如果你与我一样使用linux下的gcc,那么只要把上面的cc=cc改为cc=gcc即可.怎么样,想来一个更复杂点的吗? 一个更为复杂的makefile 你是否注意到,在上例中,只要启动make,就会重新编译所有源代码. 如果你能看懂以下的makefile,恭喜恭喜,你通关了. #一个更为复杂的makefile headers=include/myhead.h soures=main.c myc.c objects=main.c myc.c product=$(home)/bin/tool lib=myrout.a libsources=myrout1.c myrout2.c myrout3.c libobjects=$(lib)(myrout1.o)$(lib)(myrout2.o)$(lib)(myrout3.o) include=include cc=cc cflags=-g -xc lint=lint lintflags=-xc all:$(product) $(product):$(objects)$(lib) $(cc)(cflags)-o$(product)$(objects)$(lib) .c.o: $(headers) $(cc)$(cflags) -c i$(include)$start file_name SQL file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQLedit 3. 重新运行上一次运行的sql语句 SQL/ 4. 将显示的内容输出到指定文件 SQL SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6显示一个表的结构 SQL desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COLUMN column|expr option . Option选项可以是如下的子句: ALIAS alias CLEAR FOLD_AFTER FOLD_BEFORE FORMAT format HEADING text JUSTIFY LEFT|CENTER|CENTRE|RIGHT LIKE expr|alias NEWLINE NEW_VALUE variable NOPRINT|PRINT NULL text OLD_VALUE variable ON|OFF WRAPPED|WORD_WRAPPED|TRUNCATED 1). 改变缺省的列标题 COLUMN column_name HEADING column_heading For example: Sqlselect * from dept; DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK sqlcol LOC heading location sqlselect * from dept; DEPTNO DNAME location - - - 10 ACCOUNTING NEW YORK 2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上: Sqlselect * from emp Department name Salary - - - 10 aaa 11 SQL COLUMN ENAME HEADING Employee|Name Sqlselect * from emp Employee Department name Salary - - - 10 aaa 11 note: the col heading turn into two lines from one line. 3). 改变列的显示长度: FORMAT format Sqlselect empno,ename,job from emp; EMPNO ENAME JOB - - - 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN Sql col ename format a40 EMPNO ENAME JOB - - - 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 4). 设置列标题的对齐方式 JUSTIFY LEFT|CENTER|CENTRE|RIGHT SQL col ename justify center SQL / EMPNO ENAME JOB - - - 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边 5). 不让一个列显示在屏幕上 NOPRINT|PRINT SQL col job noprint SQL / EMPNO ENAME - - 7369 SMITH 7499 ALLEN 7521 WARD 6). 格式化NUMBER类型列的显示: SQL COLUMN SAL FORMAT $99,990 SQL / Employee Department Name Salary Commission - - - - 30 ALLEN $1,600 300 7). 显示列值时,如果列值为NULL值,用text值代替NULL值 COMM NULL text SQLCOL COMM NULL text 8). 设置一个列的回绕方式 WRAPPED|WORD_WRAPPED|TRUNCATED COL1 - HOW ARE YOU? SQLCOL COL1 FORMAT A5 SQLCOL COL1 WRAPPED COL1 - HOW A RE YO U? SQL COL COL1 WORD_WRAPPED COL1 - HOW ARE YOU? SQL COL COL1 WORD_WRAPPED COL1 - HOW A 9). 显示列的当前的显示属性值 SQL COLUMN column_name 10). 将所有列的显示属性设为缺省值 SQL CLEAR COLUMNS 8. 屏蔽掉一个列中显示的相同的值 BREAK ON break_column SQL BREAK ON DEPTNO SQL SELECT DEPTNO, ENAME, SAL FROM EMP WHERE SAL BREAK ON DEPTNO SKIP 1 SQL / DEPTNO ENAME SAL - - - 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS 1100 10. 显示对BREAK的设置 SQL BREAK 11. 删除6、7的设置 SQL CLEAR BREAKS 12. Set 命令: 该命令包含许多子命令: SET system_variable value system_variable value 可以是如下的子句之一: APPINFOON|OFF|text ARRAYSIZE 15|n AUTOCOMMITON|OFF|IMMEDIATE|n AUTOPRINT ON|OFF AUTORECOVERY ON|OFF AUTOTRACE ON|OFF|TRACEONLY EXPLAIN STATISTICS BLOCKTERMINATOR .|c CMDSEP ;|c|ON|OFF COLSEP _|text COMPATIBILITYV7|V8|NATIVE CONCAT .|c|ON|OFF COPYCOMMIT 0|n COPYTYPECHECK ON|OFF DEFINE &|c|ON|OFF DESCRIBE DEPTH 1|n|ALLLINENUM ON|OFFINDENT ON|OFF ECHO ON|OFF EDITFILE file_name.ext EMBEDDED ON|OFF ESCAPE |c|ON|OFF FEEDBACK 6|n|ON|OFF FLAGGER OFF|ENTRY |INTERMEDIATE|FULL FLUSH ON|OFF HEADING ON|OFF HEADSEP |c|ON|OFF INSTANCE instance_path|LOCAL LINESIZE 80|n LOBOFFSET n|1 LOGSOURCE pathname LONG 80|n LONGCHUNKSIZE 80|n MARKUP HTML ON|OFF HEAD text BODY text ENTMAP ON|OFF SPOOL ON|OFF PREFORMAT ON|OFF NEWPAGE 1|n|NONE NULL text NUMFORMAT format NUMWIDTH 10|n PAGESIZE 24|n PAUSE ON|OFF|text RECSEP WRAPPED|EACH|OFF RECSEPCHAR _|c SERVEROUTPUT ON|OFF SIZE n FORMAT WRAPPED|WORD_ WRAPPED|TRUNCATED SHIFTINOUT VISIBLE|INVISIBLE SHOWMODE ON|OFF SQLBLANKLINES ON|OFF SQLCASE MIXED|LOWER|UPPER SQLCONTINUE |text SQLNUMBER ON|OFF SQLPREFIX #|c SQLPROMPT SQL|text SQLTERMINATOR ;|c|ON|OFF SUFFIX SQL|text TAB ON|OFF TERMOUT ON|OFF TIME ON|OFF TIMING ON|OFF TRIMOUT ON|OFF TRIMSPOOL ON|OFF UNDERLINE -|c|ON|OFF VERIFY ON|OFF WRAP ON|OFF 1). 设置当前session是否对修改的数据进行自动提交 SQLSET AUTOCOMMIT ON|OFF|IMMEDIATE| n 2)在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 SQL SET ECHO ON|OFF 3).是否显示当前sql语句查询或修改的行数 SQL SET FEEDBACK 6|n|ON|OFF 默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数 4).是否显示列标题 SQL SET HEADING ON|OFF 当set heading off 时,在每页的上面不显示列标题,而是以空白行代替 5).设置一行可以容纳的字符数 SQL SET LINESIZE 80|n 如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。 6).设置页与页之间的分隔 SQL SET NEWPAGE 1|n|NONE 当set newpage 0 时,会在每页的开头有一个小的黑方框。 当set newpage n 时,会在页和页之间隔着n个空行。 当set newpage none 时,会在页和页之间没有任何间隔。 7).显示时,用text值代替NULL值 SQL SET NULL text 8).设置一页有多少行数 SQL SET PAGESIZE 24|n 如果设为0,则所有的输出内容为一页并且不显示列标题 9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。 SQL SET SERVEROUTPUT ON|OFF 在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。 10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。 SQL SET WRAP ON|OFF 当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。 11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。 SQL SET TERMOUT ON|OFF 在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。 12).将SPOOL输出中每行后面多余的空格去掉 SQL SET TRIMSOUT ON|OFF 13)显示每个sql语句花费的执行时间 set TIMING ON|OFF 14修改sql buffer中的当前行中,第一个出现的字符串 CHANGE /old_value/new_value SQL l 1* select * from dept SQL c/dept/emp 1* select * from emp 15编辑sql buffer中的sql语句 EDIT 16显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行 LIST n 17在sql buffer的当前行下面加一行或多行 INPUT 18将指定的文本加到sql buffer的当前行后面 APPEND SQL select deptno, 2 dname 3 from dept; DEPTNO DNAME - - 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS SQL L 2 2* dname SQL a ,loc 2* dname,loc SQL L 1 select deptno, 2 dname,loc 3* from dept SQL / DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 19将sql buffer中的sql语句保存到一个文件中 SAVE file_name 20将一个文件中的sql语句导入到sql buffer中 GET file_name 21再次执行刚才已经执行的sql语句 RUN or / 22执行一个存储过程 EXECUTE procedure_name 23在sql*plus中连接到指定的数据库 CONNECT user_name/passwddb_alias 24设置每个报表的顶部标题 TTITLE 25设置每个报表的尾部标题 BTITLE 26写一个注释 REMARK text 27将指定的信息或一个空行输出到屏幕上 PROMPT text 28将执行的过程暂停,等待用户响应后继续执行 PAUSE text SqlPAUSE Adjust paper and press RETURN to continue. 29将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库) COPY FROM database | TO database | FROM database TO database APPEND|CREATE|INSERT|REPLACE destination_table (column, column, column, .) USING query sqlCOPY FROM SCOTT/TIGERHQ TO JOHN/CHROMEWEST create emp_temp USING SELECT * FROM EMP 30不退出sql*plus,在sql*plus中执行一个操作系统命令: HOST Sql host hostname 该命令在windows下可能被支持。 31在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus: ! sql! $hostname $exit sql 该命令在windows下不被支持。 32显示sql*plus命令的帮助 HELP 如何安装帮助文件: Sql ?sqlplusadminhelphlpbld.sql ?sqlplusadminhelphelpus.sql Sqlhelp index 33显示sql*plus系统变量的值或sql*plus环境变量的值 Syntax SHOW option where option represents one of the following terms or clauses: system_variable ALL BTITLE ERRORS FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY| TRIGGER|VIEW|TYPE|TYPE BODY LNO PARAMETERS parameter_name PNO RELEASE REPFOOTER REPHEADER SGA SPOOL SQLCODE TTITLE USER 1) . 显示当前环境变量的值: Show all 2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息 Show error 当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。 3) . 显示初始化参数的值: show PARAMETERS parameter_name 4) . 显示数据库的版本: show RELEASE 5) . 显示SGA的大小 show SGA 6). 显示当前的用户名 show user- 作者: AACM 2005年02月3日, 星期四 11:21 回复(0) | 引用(0) 加入博采 JBOSS入门文章 本文是为想在JBOSS环境下进行EJB开发的读者而写的,在阅读本文之前,你最好对EJB有一个基本了解。JBOSS是一个开放源码的免费EJB服务器,它实现了其它J2EE所规定的大多数功能,现在sun公司已经把JBOSS作为J2EE1.4的标准实现服务器了,本文就带领大家从Jboss3.2.6的安装开始,一直到开发出一个完整的hello,world的ejb为止。 前言本文是为想在JBOSS环境下进行EJB开发的读者而写的,在阅读本文之前,你最好对EJB有一个基本了解。JBOSS是一个开放源码的免费EJB服务器,它实现了其它J2EE所规定的大多数功能,现在sun公司已经把JBOSS作为J2EE1.4的标准实现服务器了,本文就带领大家从Jboss3.2.6的安装开始,一直到开发出一个完整的hello,world的ejb为止。 JBOSS的安装与启动如果你是第一次使用JBOSS,你一定会感到很沮丧,因为它虽然是开放源码,并可以免费下载,但是它的文档或技术培训却是收费的,而且对于国人来说高不可及(几天的培训大约要10000美元,文档也要几十至几百美一份)!如果你试图在网上找一些关于JBOSS下简单入门的文章,可只是那么寥寥可数的几篇,而且很少有菜鸟级的文章。相反,对其核心设计等高深理论性的文章倒是居多,这样反倒让你越看越糊涂。因此,本文的目的就是:让你的JBOSS尽快地跑起来,并马上可以在其之上开发出简单的EJB!在安装JBOSS之前,首先要确定你已经安装了jdk1.3或以上版本,由于JBOSS不像weblogic等其它应用服务器捆绑了JDK,因此JBOSS非要jdk的支持才能运行。然后在 网站上下载一个jboss的发行版(我下载的是jboss-3.2.6.zip),在本文中我使用的其稳定的发行版JBOSS3.2.6(集成了tomcat4.1),需要附带一句的是tomcat是apache基金会旗下著名的开源jsp/servlet服务器,如果要更多的了解tomcat,请访问 以获得更详细的信息。当你把jboss-3.2.6.zip下载之后,下一步就是将它解压缩,如果你是在windows上,可以用winzip或winrar;如果是在linux下,就用unzip命令,以我自己为例,假设我将它解压到了如下目录c: jboss-3.2.6相对于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 半导体公司风险管理制度
- 病理考试题及答案检验
- 便条写作考试题及答案
- 编程水平考试题及答案
- 保洁知识考试题及答案
- 安保押运考试题及答案
- 医保双通道制度管理制度
- 培训学校会客室管理制度
- 公司盖章文留存管理制度
- 办公室人员编制管理制度
- 泉州律师见证委托合同范本
- 血液透析容量管理理论知识考核试题及答案
- 车位转让协议书范文原
- 毕业研究生登记表(适用于江苏省)
- 仪器分析智慧树知到答案2024年临沂大学
- 教育学原理考试题及参考答案
- 四川省凉山彝族自治州2023-2024学年部编版八年级历史下期期末检测试卷
- 学前教育论文范文8000字(篇一)
- 古建筑测绘智慧树知到期末考试答案章节答案2024年长安大学
- 江苏省徐州市2023-2024学年高一下学期6月期末生物试题
- 2-2-1正常新生儿的特点及疾病预防的正常新生儿的特点
评论
0/150
提交评论