Linux操作系统实训报告_第1页
Linux操作系统实训报告_第2页
Linux操作系统实训报告_第3页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章Linux命令11.1 Linux操作系统简介11.2虚拟机操作流程 2.1.3 Linux文件与目录的基本操作 2.第二章Vi编辑器152.1 Vi编辑器简介152.2 Vi编辑器操作 16第三章Linux下C语言编程 203.1 gcc 简介203.2 Linux 下 C 语言编程 213.3 gdb 调试25第四章进程控制和通信284.1进程控制284.2 Linux 下进程控制实现 284.3进程通信314.4 Linux 下管道通信实现 31结论34第一章Linux命令1.1 Linux操作系统简介Linux的起源:UNIX系统的快速发展,引起了计算机科学家 An drew T

2、anen baum的强烈好感,为了方便学生更好的了解操作系统的工作原理,他开发了一个迷你的UNIX,即Minix系统。1991年10月,芬兰赫尔辛基的学生Linuxs Torvalds在Mi nix的基础上开发了大约一万行的代码, 将其发布到论坛上供大家下载,后来在众多黑客的开发下,终于在1994年3月14日发布了 Linux1.0版本。此后Linux各种版本开始流行起来。1999年发布了 Linux 中文版本。严格的说,Linux不算是一个操作系统,只是一个操作系统的内核,即计算机软件与硬 件之间通信的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的 Linux系统。 G

3、NU是Richard Stallman 组织的一个项目,世界各地的程序员可以编写GNU程序,同时遵循GPL协议,允许任何人随意更改。不过,修改后的程序也要遵守GPL协议。Linux的特点:完全免费。由于Linux遵循通用的公共许可证GPL,因此任何人有使用、拷贝和修改 Linux的自由。高效安全稳定。UNIX操作系统的稳定性是众所周知的,Linux继承了 UNIX核心的 设计思想,具有执行效率高、安全和稳定性好的特点。支持多种硬件平台。Linux能在笔记本电脑、PC机、工作站、甚至大型机上运行,并 能在x86、MIPS、PowerPC、SPARC、和Alpha等主流的体系结构上运行。友好的用户

4、界面。Linux提供了类似 Windows图形界面的X-Windows系统,用户 可以使用鼠标方便、直观、快捷的进行操作。强大的网络功能。网络是Linux的生命,完善的网络支持是Linux与生俱来的能力, 所有Linux在通信和网络功能方面优于其他操作系统。支持多任务、多用户。Linux是多任务、多用户的操作系统,可以支持多个使用者同 时使用并共享系统的磁盘、外设和处理器等系统资源。Linux的保护机制使每个应用程序和用户互不干扰,任何一个任务不崩溃,其他任务仍然正常运行。1.2虚拟机操作流程Vmware Workstation6是目前比较主流的虚拟机软件,也是唯一的能在Windows 和Li

5、nux主机平台上运行的虚拟计算机软件。它能真实的模拟物理计算机的所有基本功能,是 多平台学习不可或缺的虚拟软件。首先,打开Vmware Workstation6 虚拟机软件,在主界面中选择 Red Had Enterprise Linux4虚拟计算机系统,点击 Comma nds 框架中的“ Start this Virtual machi ne ”按钮, 运行 Red Had Enterprise Linux4 虚拟系统。1.3 Linux文件与目录的基本操作文件与文件名Linux的文件名长度可以达到256个字符,但不能使用以下字符做文件名:!#$%八&*()V;<> 空

6、格Linux区分大小写ABCAbc不同文件名中如果有多个小数点,最右边的一个为分隔符,表示文件的类型,如.txt,.c目录“ /”为根目录、目录分隔符和目录与文件的分隔符。如:/home/fe ng/11.txt。文件与目录的常用命令1. man命令man语法:man 命令符man命令说明:对你熟悉或不熟悉的命令提供帮助解释(按空格键显示下一页,按 b键返回,按q键退出)。使用权限:所有用户。范例:例1:显示vi命令的帮助解释,如图1-1所示Rootli nux root# man viV1(P)vi - screen-or icnted (visua 1> display edi to

7、rSYNCPSISvi 1-rRj- e CGirrTunJ -( I 口只、I r in 品-w乂 亡门1EESCRTPTimTh i s utilityH be prov i dedPor t ah i I i t y Ut i I i I ie s opl ion and Qi ol lie r iy i tent i l is upt i ona I . on syslemi that bot h support t he User define the PCBIX2_aKR_THRM synbol .Tlie v_i_ (visual) ill i lily i s a sereen

8、-ur iented te i L ed i l ur C>i I y the open and visual rrudc s o f t he editor are described in TREE Sid 1003 +1 -2001 : sep t h? I ine edi t ur pl ft>r add i i i ony I edi l ing capub i Lilies used in v_i_. The user can swi 1 ch back and for t h bet wen v i and and exeeut r ex coiiriiands fr

9、om within v i ”图1-1man 命令查看vi帮助2. Is命令Is语法:ls选项I参数目录名Is命令说明:用于显示指定目录或文件的相关信息 使用权限:所有用户。Is命令参数选项见表1-1。表1-1 ls命令参数选项选项选项功能-a显示所有文件和目录,包括隐含文件-l显示文件的完整信息d表示目录(directory),如果是一个"-"表示是文件,如果是1则表示是一个连接文件(link)表示文件或者目录许可权限,分别用可读(r),可写(w),可运行(x)。-F在每个文件名的后面或是前面添加一个特定的后缀字符的方法指岀它的类型 / :子目录* :可执行文件无:普通文

10、件.开头:隐含文件-r将文件以反次序显示(依英文字母顺序)-t将文件依建立时间的先后顺序列岀,后建的排在前面-A同-a,但不列出“.”当前目录和“.”父目录-R若目录下有文件,则列岀其下文件范例:例1 :显示目录或文件的详细列表并以创建时间的先后反次序显示,如图1-2所示-rvr一r一- 1 root root -rr rr 1 root root -rw-rr 1 root root roollocalhost # |rootlocalhost '# 1 s -hr 1* 32949 2008-03-05 5(*244 2OOR-03-05 lilial l.log0 6月 23 0

11、9:22 init Jxt图1-2显示列表例2 :显示目录(子目录不为空时显示子目录)详细列表,如图1-3所示rootlocal host '# 1 s - IR总用ft 120 -rw-rr drwxr-xr-x 一 rw- rr一 1对rr -rw- r一 r一,/Cesktop: 总用見4-rw-1rootlocal host #roolroot1IS2rootroot4096rootroot1)lootroot5()244lootroot32949rootroot0 6月23 09:24温周洋焙t121112008-03-(5 unaconda-ks. c fg6月 23 09

12、:24 Desktop6月 23 ()9:22 init.txt20()8-03-(15 instal 1. log 2(K)fi-03-()5 install, log. sys lug图1-3显示详细列表(R参数)父目录,在每1-4所示。例3 :显示所有文件和目录,包括隐含文件但不列出“当前目录和 个文件名的后面或是前面添加一个特定的后缀字符的方法指出它的类型,如图root 1 oca I hostJ# Is -AFanaconda-ks. cfg>sktop/.gnonF2_pr i vate/i n s t a 11,1og.syslog.bashhi story,dnrc,gs

13、t reanrr-O.S/,nr t a c i t y/.bashlogom.eggcups/.gtkrc.naut ilus/,bash_profi le* cun f/.gtkrcl .2-gnoirc2.recently-used.bashrc.gconfd/.Giauthor i ty.rhn-app lei conf.con f i g/.gnont/inil.txi.l cshr c.cshr c.gnonr2/ins t a 11 Jog.Xaut hor i t yrootlocalhost图1-4 AF参数结果3. mkdir 命令 mkdir语法:mkdir选项|参数目录

14、名mkdir命令说明:用于创建目录。使用权限:所有用户。mkdir命令参数选项:-p :确保目录名称存在,不存在的话就创建一个 -m :在创建目录时设置目录权限。范例:例1 :使用自己的学号和姓名各创建一个子目录, 并用Is命令观察结果,如图1-5所示1 uoKMues lhust Fnkdir 2007435124r uoKA'Ilhus1 Fnicd ir船山洋C I uouea lhoit F1 m -1忘用呆132dvwt T-StT-X 2r uu 1too 14;9d2月 5沽:24 2UU7435124-r r-r I1 uu 1roo i1162200 St-03-0

15、5anaeonda-k 百 c fgfdr Wlr- 21 DO 1rco i4U9E20n8-0305Of !bk l up-tvit y-11 DO 1roo i5024420( 18-0305insist 1.1 of-r叶rr一亠1 DO 1rooi329492PU8-O3-O5ins i a J1 Id 罠.syslartlr wl r-x 21 DO 1roo i2R 5 IS;24畑俱洋r do 1 l© oca I h o tL图1-5使用mkdir命令创建子目录例2 :创建一个已经存在的子目录,观察显示结果,如图1-6所示(r oal oea llios iIs -

16、 I总用量132d朋 r_t r_x2f no troot4u9H2H 5 I5;24 2tJii743SI24=萨r一Ir uo iruu t1 1U220118-03-05anaconLlLi k s.ciywk r-x r-K2r ua lroj t40962008-03-05DC sit up1rootTOO t502442t)08-03-0Sin 5 511”I一wr1raoirwa t329492w】m好i 口 s W 1 丨 + Isy s 1 o貿(1口塹 tK r-x2r uo Irou t40962月5 IE;24毅洋roca llios i # iikd j r 2nd7

17、435124nkdiT:无法创M 2074 35124':文件已存在 gm Ihg t图1-6创建已存在子目录结果4. rmdir 命令rmdir语法:rmdir选项|参数目录名 rmdir命令说明:用语删除空的目录。 使用权限:所有用户。rmdir命令参数选项:-p :当子目录被删除后使它也成为空目录的话,则顺便一并删除。 范例:例1 :删除上例中使用mkdir创建的“2007435124 ”和“温周洋”子目录,并使用Is命 令观察结果,如图1-7所示。r LRO I OeD 1 11 O t fl 1 a20(17435 I 24 ana conda-k s . c fpt op

18、i n s t a I 1. I ag i n s i £i I 1 . 1 og. sy » 1 o百 温周 Y羊Toca lha ti nl i r2UG7435I24r uo Io co li a ti ulI i rr ooKsC ocat】sana conda-k i. c fgrEfe sk1 opinstall.J ug】nstai。巨“sya 1o兰r uo l a、1 h o t1图1-7使用rmdir删除子目录例2 :使用rmdir删除一个不存在的目录,并观察结果,如图1-8所示rooocahot I "» hanacanda-k i

19、. c f * D? sk t up i n & I a I 1. ur in la I L 1 /. sy s 1 og- roctOlaca Ihosr " rnd i ir 07124rndir:尙71*:弹有那个文件或眉录rootl oca Ihos t|图1-8使用rmdir命令删除不存在目录结果5. cd命令cd语法:cd目录名命令说明:用语更改当前目录 使用权限:所有用户。范例:例1 :使用cd命令进入“ 07124 ”目录(已存在)和“ 07142 ”目录(不存在),并观 察结果,如图1-9所示。Iocu 1 has t # I、<1/124 anact

20、iiiila-ks. cELsk lap in i a 1 I . Iin£1乱 I I . Iog. sy g 】u誉 i uoicil oca lhas t cd 07124Lr)ot'5loca Ihos t U724Jf cdr ooi oca Ihos t if cd 07142IjrUkch没右邯亍丈件或冃录g(H 爾 xmlhgt ff图1-9更改当前目录6. pwd命令pwd 语法:pwd 命令说明:显示当前用户所在工作组目录位置使用权限:所有用户。范例:例1 :显示当前用户所在工作组目录,如图1-10所示r oi,:,ll cca lhos t Et?sk

21、I op fr pml/1 oot ZDl sk t oprooi刨oc亂T dsklor1丼图1-10显示当前目录7. cp命令cp语法:cp选项I源文件或目录目标文件或目录目的目录 命令说明:复制文件或目录。 使用权限:所有用户。cp命令参数表,见表1-2。表1-2 cp命令参数参数选项说明-a此参数的效果和同时指定“ -dpR "参数相同-b删除覆盖目标文件之前备份,备份文件会在字尾加上一个备份字符串-d当复制符号链接时,把目标文件或目录也建立符号链接,并指向与源文件或目录链接的 原始文件或目录-f强行复制文件或目录不论目标文件或目录是否存在-i覆盖既有文件之前先询问用户-l对

22、源文件建立硬链接,而非复制文件-p保留源文件或目录的属性-P保留源文件或目录的路径-r递归处理,将指定目录下的文件与子目录一并处理-R递归处理,将指定目录下的所有文件与子目录一并处理-s对文件建立符号链接,而非复制文件-u使用这项参数后只会在源文件的更改时间较目标文件更新时或与名称对应的目标文件并 不存在,才复制文件-v显示命令执行过程-x复制文件或目录存放的文件系统,必须与cp命令执行时所处文件系统相同,否则不复制范例:例1 :复制/root/2007435124/下的所有以24开头的文件到/home/温周洋 目录下,如图1-11所示。r jdiQi'Loca lhas t r uo

23、i'l ocq Ihoi t (uoi(Mu(?a ihost icea 1 h o s t屈用触32/hcm?/7uJ 洋一WK TX)1 301rou t122866 J320: 37245Lu一W( LX一总)rootrou I6<l79i2V:3724. cwir r-1 r uotrou l11州2<): S724.tx trooiQ' loca Ihost )51 洋it"Jt cp 2OU7435I24/24*'ff cd f/# cd hurre熠周洋 浣周洋M Is -1图1-11复制所有以24开头的对象8. rm命令rm 语法:

24、rm选项文件或目录rm命令说明:删除文件或目录。使用权限:所有用户。rm 命令参数表,见表1-3。表1-3 rm命令参数参数选项说明-d直接把欲删除的目录的硬链接数据删成0,删除该目录-f强制删除文件或目录,删除文件或目录前不在询问用户-i删除既有文件或目录之前先询问用户,此为默认项-r/-R递归处理,将指定目录下的所有文件及子目录一并处理-v显示命令执行过程范例:例1 :直接删除/root/2007435124/24.c文件,删除前不询问用户,如图1-12所示r noi'l oca Ihuj; t 2UO7435124# I a123, c 2451.024 * c 24-. tx

25、t siun. tx tr uDKn,l oca lhoji t 200743512419 rm - f 24. cr uoici1'! uca lhos t 2007435124IT J s123- c 245k 24. txt wn. tx tt uobp'l oca lhos t 2<ji)74 3S 124ff图1-12删除文件例 2 :删除/root/2007435124下的wen .txt文件和24子目录,删除前询问用户,如图1-13所示。r oail oca (hast 21)74 35124 ?f ) s12S. c 2424 b L o 24. t x

26、t wn. tx ti oai(jvloca I hos t 201)74 35124 tf rm - r 24 wun. tx trn址否删除口录24'? yrnv址否删除般丈件ivn. i i ' ? yr ooi(| uc?a I host 2407435124 ff I bI23.c2+5Lo 24. txt(roatloctihast 2007435124#图1-13删除特定文件和目录9. mv命令mv语法:mv 文件1或目录1文件2或目录2mv命令说明:移动文件或修改文件名。使用权限:所有用户。范例:例 1 :修改 /root/2007435124目录下的文件24.

27、txt为wen .txt ,如图1-14所示。r oaiCv1! oca I has tIs12112S, c 24-51 x a 24 - txtracialocaIhasi )# nv 2ou743S 124/2+, txt 2007435124/wn» txtruoilocalhosi 'Iff I s 20吋435124123. c 2+S I + u wen.iviroealhost *ff图1-14修改文件名例2 :移动/root/2007435124 目录下的wen.txt文件到/root/下,如图1-15所示。1 oatfel oca I hos t '

28、;it Is 2<)(l74S512412S, c 24-SI x w?n, ik tr uaitil oca Ihos i # mr 21)11745124/wn. ixi swn+ tx i rootlocalhost 'Iff 1 s200743512< anacondakciy inia 11. > ix i23*Uh i>c t api nsia 11.1 or. sy s ogr oqiI uea Ihos t *#图1-15移动文件10. cat命令cat命令语法:cat选项文件名cat命令说明:用于显示特定文件到标准输出设备或另一个文件中使用权限

29、:所有用户。cat命令参数表,见表1-4 。表1-4 cat命令参数参数选项-n由1开始对所有输出的行数编号-b和-n相似,只不过对于空格行不编号-s当遇上连续两行以上空白行时就换成一行空白行范例:例1 :显示文件wen .txt中的内容,如图1-16所示。T oca I has tW2U(74 35124 ariaconda-k s. cff in a J 1 . Iwen* i itntdctopjji£la 1 I , Io. sy£)og*r ooitsloca Iha i # ca t wun. tn tAIjuui HE;LadyaiuJ genielntn:G

30、ive rrt you a i en t i on »mr nanv is VtnZhuuyanj?. 1 m it om eh ina.M1 nant di inei>t让温周洋.root®ou凰howi '#图1-16显示文件内容11. more 命令 more 命令语法:more 文件名more命令说明:用于分页显示指定文件的内容。使用权限:所有用户。范例:例1 :逐页显示/etc/samba/smb.conf的内容,要求一次显示10行,如图1-17所示。r心m t # npr y - 10 /t* t c/ s;ant>a/ irrtj. con

31、iwr i leabIe yes paih /hum# Th i $ i s ihe nu in Sarris cunfiiira i i un file* You should read the# s nt uon(5) im nua page i n order t under t and ihe op ti on & li s i ed# here- Satdja ha & a hu忒寸 nurrLer uf can! ifur able options t perhaps too fl many! ) nus t of vJi i ch are no t 帧 i n i

32、b ii s ex anp I e#H Any lint? which s t a r i s wi i h a ; ( semi -co I or) or a 丼(ha sh)ff i a a cormLii t and i n i priared. I n ih i s ex a np 1 e we wi 】1 use a #ff for connvriry and a : tor ports f rhe corFig tile that you-hi)rc?FL 4%)图1-17逐页显示文件内容12. clear 和 date 命令clear命令说明:用于清屏。date命令说明:显示系统

33、当前时间范例:例1 :显示当前系统时间,如图1-18所示r ooKn>l cca Ihuti t # dale三 6月 3 21;35:57 CST 2O*i9 roollocalliosl J#图1-18显示系统时间第二章Vi编辑器2.1 Vi编辑器简介2.1.1 Vi编辑器概述在各种操作系统中,编辑各种文件是必不可少的工作部分。在Linux操作系统中提供了一系列的编辑器供用户使用,例如 Vi、Vim、Emacs、pico、ex、ed等,其中Vim (Vi的 增强版)是最常用的编辑器,它是唯一在所有版本的 Linux系统和其他各种UNIX系统中都 配备的文本编辑器。4.1.2 Vi编辑

34、器的工作模式Vi编辑器有3种工作模式,在每种工作模式下能做不同的操作。命令模式:是进入 Vi的默认模式,在此模式下可以对所编辑文档进行复制、粘贴、删除、移动光标、继续查找等操作,同时它也是末行模式和编辑模式之间进行切换的中转站。 末行模式:用于文件的保存、退出、定位光标、查找、替换、设置行标等操作。编辑模式:用于直接编辑文件。 三种模式之间的切换方法如图2-1所示。从图2-1中可以看到,编辑模式和末行模式之间不能直接切换,必须通过命令模式进行 过度。图2-1工作模式切换模式图2.2 Vi编辑器操作编辑器的启动可以使用简单的命令来启动 Vim文本编辑器,通常可直接指定需要编辑的文件路径,即 使需

35、要编辑的是一个原本不存在的新文件。一般命令如下所示:Rootli nux root# vim 文件名三种模式的操作进入Vi后,首先会看到如图2-2所示的界面:土°*-Rta!VIM- Vi Tproved%版本 6.3,82F维护人:Bram Mtolenaar et a .Mid i f i ed by <bugi i 11 atsYedha i - corri>Vim为可自由发的开放源代码软件Becont a rei sIered Vim user'亠Flype : he 1 p reisier<&iter>for i n fur rm 1

36、 i unF烫退出请输入:qEnWr>F在线搐iU请输入:help<Eii ter>七新版本宿 请输入:help ver siionfi<Rnter>电hOtu-1全部:图2-2 Vi主界面(命令模式)图2-2所示的界面即为命令模式的界面,在这个界面下按下“:”键就可以进入如图2-3 所示的末行模式,所谓“末行模式”就是在编辑器的最后一行进行输入。末行命令wq表示将编辑内容写入文件并退出。 这里不退出而进入编辑模式,因为末行 模式不能直接进入编辑模式,因此先按下“ Esc”键退回命令模式,在命令模式下按“ insert ” 进入如图2-4所示的编辑模式,在编辑模式

37、下可以输入文本。VIM- Vi I proved贩車 俳护人;Bram Mia I enan r ei a I »Mjd i f i ed by <Luprz i I 1 a<?¥edha t. cott帖Hl为可自由塩行的幵放嫁代码软件BecoiTt arepi s 1 ered Vim u些匕!type z he 1 p r e|r is 1 eir <Eni 1 er>for i n fo rrm l i onRte*曹退出诘输入:q < En 1 er>在线帯助i青输入:he lp<Eh f er>新版本信息请输入z

38、h e 1 p ver si unti< l£n t ei>图2-3末行模式盘周洋 V6 I CUITB 1 u v i.JLre you can wi' i t u 砧u i you winlhava a graud tint.W? Iconv io Red fai erpr i se Li nn4En i erinsert7 + 14底端图2-4编辑模式命令1. 末行模式命令在末行模式下可以输入末行命令,常用的末行命令见表2-1表2-1末行模式命令:w path/filename保存文件:n,m w path/filename保存指定范围文档(n表示开始行,m

39、表示结束行):q!对文件修改后,不保存强制退岀。:q没有对文件做过修改,退岀:wq 或:x保存退岀r path/filename读取文件set nu打开行标set nonu关闭行标/char正向查找字符? char反向查找字符2. 命令模式命令在命令模式下,也可以使用大量的命令对文件进行编辑等操作,常用的命令模式命令见 表 2-2 。表4-2命令模式命令a从光标所在位置后面新增文字,光标后的文字随新增文字向后移动A从光标所在列最后面的地方开始新增文字i从光标所在位置前面开始插入文字,光标后的文字随新增文字移动可用insert键I从光标所在列的第一个非空白字符前面开始插入文字o在光标所在列下新增

40、一列并进入输入模式O在光标所在列上方新增一列并进入输入模式x删除光标所在字符 也可以用Delete键dd删除光标所在行r修改光标所在字符,r后接要修改的字符R进入替换状态,新增文字会覆盖原先文字知道按ESC后到命令模式s删除光标所在字元,并进入输入模式S删除光标所在的列,并进入输入模式第三章Linux下C语言编程3.1 gcc简介1. gcc基本语法gcc opti on file name表3-1 gcc参数列表选项功能-c对源文件进行预处理、编译和汇编,产生目标文件,但不进行连接。-o文件名定义输岀的执行文件名为 文件名-S在编译后停止,产生类型名为s的汇编代码文件-E在预处理后停止,输岀

41、预处理后的源代码至标准输岀,不进行编译-O对程序进行编译优化,编译速度比不做优化慢且要求内存多。-O2比-O优化效果更好,但编译速度较慢-g产生一张用于调试和排错的扩展符号表,以便用gdb进行调试3.2 Linux下C语言编程1.编写程序实现如下图形显示* * * *程序实现代码如下,运行结果如图3-1所示。#i nclude<stdio.h>main () int i,j,k;for(i=0;i<5;i+)for(k=0;k<4-i;k+)printf("");for(j=0;j<=i;j+)prin tf("* ");p

42、rin tf("n");rootlacaIhotFoo阚az Ihusi*图3-1金字塔图形It1cpj# gee uw,e -qDteskiopff . /ww.o*单*+ + + * *(roo 1 oea I ho it D? i cp#2.编写程序实现求三个数中最大值所示。程序实现代码如下,运行结果如图 3-2#in clude<stdio.h>int max(i nt x,i nt y,i nt z)int max;max=x;if(max<y) max=y;if(max<z) max=z;return ma x;main ()int i,

43、j,k,l;prin tf("please in put three nu mbers:n");scan f("%d %d %d",&i,&j,&k);l=max(i,j,k);prin tf("The max nu mber is:%dn", I);r QiO'l oca lhosi t De ssk t op!ec.cr ooiQ1'! oca lhoji t De ik t oplft ./cc. o p 1 ea it i npu i 1 h r ee nLinlier s:12 24

44、31The ttex nunber i &:31i oca Ihos t Desk topjff图3-2求三个数中最大值3. 编写程序实现求一维数组中最大值程序实现代码如下所示,运行结果如图3-3所示#in clude<stdio.h>#in clude<stdlib.h>#in clude<time.h>main ()int array10;int i,ma x;time_t t;sran d( un sig ned)time(&t);for(i=0;i<10;i+)arrayi=ra nd()%100;prin tf("T

45、he array are:n");for(i=0;i<10;i+)prin tf("%2d ”,arrayi);if(i+1)%5=0)prin tf("n");max=arrayO;for(i=0;i<10;i+)if(max<arrayi)max=arrayi;prin tf("The max nu mber is:%dn",max);r ooiir 1 oca lhos t De sk 1 op)? gjcc 11.c -o 1 t, u r aca t/11»oHie array are:35 M

46、47 33 7770 94 9+ 92 88Hie rrnx ntinLer i s ; 94raotloca Ihoti 1 Dtesk topf图3-3求一维数组中最大值3.3 gdb调试GDB是一个由GNU开源组织发布的、UNIX/LINUX 操作系统下的、基于命令行的、功 能强大的程序调试工具。其基本命令见表 3-2。表3-2 GDB命令命令说明file 文件名加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。rRun的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个 可用断点处。cContin

47、ue的简写,继续执行被调试程序,直至下一个断点或程序结束b 行号b 函数名称b *函数名称b *代码地址b: Breakpoint的简写,设置断点。两可以使用行号”函数名称”执行地址"等方式指定断点位置。其中在函数名称前面加* ”符号表示将断点设置在由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。d 编号d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。s, nS:执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;n:执行一行源程序代码, 此行代码中的函数调用也一并执行。s相当于其它调试器中

48、的Step Into (单步跟踪进入)”;n相当于其它调试器中的Step Over (单步跟踪)”。这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用-g ”参数)。si, nisi命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni) 所针对的是汇编指令,而s/n针对的是源代码。p 变量名称Print的简写,显示指定变量(临时变量或全局变量)的值display .undisplay < 编号 >display,设置程序中断后欲显示的数据及其格式。例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使 用命令display /

49、i $pc ”其中$pc代表当前汇编指令,/i表示以十六进行显示。当需要关心汇编代码时, 此命令相当有用。undispaly ,取消先前的display设置,编号从1开始递增。iInfo的简写,用于显示各类信息,详情请查阅help i ”。qQuit的简写,退出GDB调试环境。Linux下使用gdb进行程序调试(以一个 C语言程序为例)。首先使用gcc进行编译如下:Rootlinux root# gcc tt.c -o tt -g然后进入gdb,会看到说明,接着加载已经编译过的 C文件,加载成功后使用r命令运 行结果如图3-4所示。ruuiDca lhast Ftsk ropjtf grcc

50、r t.c -o i r -groofocalhosl Dbuktopjt gdbOMLT gdU Rt?d Ih t Linux I . I 32. EL4rh) Copyr i 1 2tH)4 F r ee So f 1 wi re Found a t i on » Inc.OB it f r ee f l ug i e + covered by the CNJ Genera 1 PutI i c L i cen t and you areI conv t u change i 1 ard/ar d i s t r i bui k cop i u s of i t undvr c

51、er 1 u i n fund i I i uiis > Type ' thow copy i 1 io see the cond i1i anThere l i absul ul ely no vka r r a n t y far <H2_ Trpe p sh ow ws r r a r t y r fo r de fa i 11 s L 111 i a tUi wti s con figured si"i 3SH- r edha t - I i nux-gnu1" *(ib) fi le 11Rtad i )rrrLu J s from /racl

52、/Dfesktop/t . .dune.Uu i host 1 ib th i eadjdb library F / 1 i b/ t I s/ 1 i L I hrefld.dL., iD. ICgdb) rStnrli门臣 pr orant /roal/Efesktop/ltThe array are:21 91 23 羽)10 95 42 64 S3Th e tthk nurrber i £ : 9KPr uni c* i led wi ih cade ij25,(gdb)图3-4 gdb 调试程序使用gdb进行调试可以进行断点设置,在第 21行设置一个断点(b命令),然后使用

53、r 命令进行运行,当程序运行至断点时程序停止,继续运行可以使用c命令,运行过程如图3-5 所示。(gdb) U 21Br eakpo i n i 1 a t i80484c4 : f i I c i t, c, line 21, (gdb) rStart i ii pr uram /roa I./Etsk top/1 ITlie array ure:0 25 53 G 7556 34 14 86 祐Brtakpa i ni I. im i n () ai ,tc:2222mix =a r r ay t叮*(gdb) cCon i i bli i nr.The riBx nuntier im:8i勺JTi ram ex i t etl vii ih code 1)25. (gdb)图3-5断点设置第四章进程控制和通信4.1进程控制利用signal和kill实现软中断通信kill()系统调用格式:int kill(pid,sig)参数定义:int pid,sig;其中,pid是一个或一组进程的标识符,参数sig是要发送的软中断信号。(1) pid>0时,核心将信号发送给

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论