第15章 Linux 下的编程.ppt
《第15章 Linux 下的编程.ppt》由会员分享,可在线阅读,更多相关《第15章 Linux 下的编程.ppt(120页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux下的编程下的编程 上上机机实实训训案案 例例 三三 及及 其其 相相 关关 内内 容容案案 例例 二二 及及 其其 相相 关关 内内 容容 基基础础内内容容介介绍绍案案 例例 一一 及及 其其 相相 关关 内内 容容 课课程程总总结结 Linux下下的的编编程程第十五章 Linux下的编程下的编程教学目的与要求通过本节课的学习,您应学会:掌握Linux下的c/c+编译方法掌握Linux下的shell编程控制结构掌握Linux下shell编程的函数调用Linux下的编程下的编程15-1 Linux下的编程Linux的发行版中包含了很多软件开发工的发行版中包含了很多软件开发工具。它们中的
2、很多是用于具。它们中的很多是用于C和和C+应用应用程序开发的,本文介绍了在程序开发的,本文介绍了在Linux下能用下能用于于C应用程序开发和调试的工具。应用程序开发和调试的工具。Linux下的进行网页的开发。下的进行网页的开发。Linux下的下的shell编程。编程。Linux下的编程下的编程返回首页返回首页Linux下的编程下的编程给出案例给出案例案例一1、编写简单的c程序,并用Linux下的gcc编译器编译。2、编写简单c+程序,并用Linux下的g+编译器编译Linux下的编程下的编程GCC(GNUCCompiler)是是GNU推推出出的的功功能能强强大大、性性能能优优越越的的多多平平台
3、台编编译译器器,是是GNU的的代代表表作作品品之之一一。GCC是是可可以以在在多多种种硬硬件件平平台台上上编编译译出出可可执执行行程程序序的的超超级级编编辑辑器器,其其执执行行效效率率与与一般编译器相比平均效率要高出一般编译器相比平均效率要高出20%30%。15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程GNU C 编编译译器器(GCC)是是一一个个全全功功能能的的ANSIC兼兼容容编编译译器器.如如果果你你熟熟悉悉其其他他操操作作系系统统或或硬硬件件平平台台上上的的一一种种C编编译译器器,你你将将能能很很快快地地掌掌握握GCC.本本节节将将介介绍绍如如
4、何何使使用用GCC和和一一些些GCC编编译译器器最最常常用用的选项。的选项。15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程GCC编编译译器器能能将将C、C+语语言言源源程程序序、汇汇编编程程序序和和目目标标程程序序编编译译、连连接接成成可可执执行行文文件件,如如果果没没有有给给出出可可执执行行文文件件的的名名字字,GCC将将生生成成一一个个名名为为a.out的的文文件件。在在Linux系系统统中中,可可执执行行文文件件没没有有统统一一的的后后缀缀,系系统统从从文文件件属属性性来来区区分分可可执执行行文文件件和和不不可可执执行行文文件件。而而GCC则则通
5、通过过后后缀缀来来区区别别输输入文件的类别。入文件的类别。15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程以以.c为后缀的文件,是为后缀的文件,是C语言源代码文件;语言源代码文件;以以.a为后缀的文件,是由目标文件构成的档案库文件;为后缀的文件,是由目标文件构成的档案库文件;以以.C,.cc或或.cpp为后缀的文件,是为后缀的文件,是C+源代码文件;源代码文件;以以.h为后缀的文件,是程序所包含的头文件;为后缀的文件,是程序所包含的头文件;以以.i为后缀的文件,是已经预处理的为后缀的文件,是已经预处理的C源代码文件;源代码文件;以以.ii为后缀的文件,是
6、已经预处理的为后缀的文件,是已经预处理的C+源代码文件;源代码文件;以以.m为后缀的文件,是为后缀的文件,是Objective-C源代码文件;源代码文件;以以.o为后缀的文件,是编译后的目标文件;为后缀的文件,是编译后的目标文件;以以.s为后缀的文件,是汇编语言源代码文件;为后缀的文件,是汇编语言源代码文件;以以.S为后缀的文件,是经过预编译的汇编语言源代码文件。为后缀的文件,是经过预编译的汇编语言源代码文件。15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程使用GCC编译程序时,编译过程可以被细分为四个阶段:预处理(Pre-Processing)编译(C
7、ompiling)汇编(Assembling)链接(Linking)15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程预处理(Pre-Processing)使用-E参数可以让GCC在预处理结束后停止编译过程:生成.i的文件#gcc-E hello.c-o hello.i15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程编译(Compiling)下一步是将hello.i编译为目标代码,这可以通过使用-c参数来完成:#gcc-c hello.i-o hello.o15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分
8、析Linux下的编程下的编程汇编(Assembling)和链接(Linking)#gcc hello.o-o hello15-2GCC介绍介绍与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程gcc命令格式:gcc options filenames。15-2GCC使用格式使用格式与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程-x language filename:设定文件使用的语言,使后缀名无效。例如:gcc x c hello.cd /指定文件所使用的语言为C,虽然其后缀为.cd-x none filename:让GCC根据文件后缀,自动识别文件类型。
9、例如:gcc x c hello.cd -x none test.c /将根据test.c的后缀名来识别文件,而指定hello.cd的文件类型为C文件Linux下的编程下的编程-c:只激活预处理、编译和汇编,即只是把程序编译成obj文件(目标文件)。例如:#gcc c hello.c /生成.o 的obj文件:hello.o-S:只激活预处理和编译,即把文件编译成汇编代码。例如:#gcc S hello.c /生成.s 的汇编代码,可以使用文本编辑器进行查看。Linux下的编程下的编程-E只激活预处理而不生成文件,要把它重定向到一个输出文件里。例如:#gcc E hello.c check.t
10、xt-o:制定目标名称,例如:#gcc o hello hello.c#gcc o hello.asm-S hello.cLinux下的编程下的编程-include file:包含某个代码,简单来说,就是当某一个文件需要另一个文件的时候,就可以用该选项进行设定,功能就相当于在代码中使用#include。例如#gcc hello.c include/root/pic.h /编译hello.c 文件时包含根目录下的pic.h头文件。Linux下的编程下的编程2、C程序、传统c+常用的头文件#include /设定插入点#include /字符处理#include /定义错误码#include /浮
11、点数处理#include /文件输入输出#include /参数化输入输出#include /数据流输入输出#include/定义数学函数#include /定义输入输出函数#include/定义杂项函数及内存分配函数#include/字符串处理#include/基于数组的的输入输出#include/定义关于时间的的函数#include /宽字符处理及输入输出#include/宽字符分类Linux下的编程下的编程1、编写简单的c程序,并用Linux下的gcc编译器编译。1)用vi编译器编辑程序如下:rootlocalhost root Vi hello.c#include int main()
12、printf(Hello world,Linux programming!n);return 0;2)执行命令编译和运行程序,目标程序名为hellorootlocalhost root#gcc hello.c-o hello rootlocalhost root#./hello Hello world,Linux programming!案例解答案例解答Linux下的编程下的编程g+and GCC分别是gnu的c&c+编译器 GCC/g+在执行编译工作的时候,总共需要4步:预处理,生成.i的文件。将预处理后的文件不转换成汇编语言,生成文件.s。由汇编变为目标代码(机器代码)生成.o的文件。连接
13、目标代码,生成可执行程序。Linux下的编程下的编程 g+和GCC区别两者都可以编译C和C+代码,但它们的区别如下:(1).后缀为.c的,GCC把它当作是C程序,而g+当作是c+程序;后缀为.cpp的,两者 都会认为是c+程序,虽然c+是c的超集,但是两者对语法的要求是有区别的。C+的语法规则更加严谨一些。(2).编译阶段,g+会调用GCC,对于c+代码,两者是等价的,但是因为GCC命令不能自动和C程序使用的库联接,所以通常用g+来完成链接,为了统一起见,干脆编译/链接统统用g+了,这就给人一种错觉,好像cpp程序只能用g+似的。Linux下的编程下的编程2、编写简单c+程序,并用Linux下
14、的g+编译器编译1)用vi编辑器编辑程序test1.cc内容如下:rootlocalhost root vi test1.cc#include using namespace std;int main()cout”this is a c+test”endl;return 0;2)执行命令编译和运行程序,目标程序名为test1rootlocalhost root#g+-o test1 test1.cc rootlocalhost root#./test1this is a c+test案例解答案例解答Linux下的编程下的编程返回首页返回首页Linux下的编程下的编程给出案例给出案例案例二Lin
15、ux下的简单下的简单php编程编程Linux下的编程下的编程PHP最初是在1994年Rasmus Lerdorf 开始计划发展 的。在 1995年 以 Personal Home Page Tools(PHP Tools)开始对外发表第一个版本。PHP跟Apache服务器紧密结合。其源代码完全公开。15-3PHP简介简介 与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程PHP具具有有强强大大的的数数据据库库功功能能,其其特特点点就就是是内内置置了了对对很多数据库的支持,而不再需要重新扩充很多数据库的支持,而不再需要重新扩充PHP作作为为一一种种能能快快速速学学习习、跨跨平平台
16、台、有有良良好好数数据据库库交交互互能能力力的的开开发发语语言言,使使UNIX/Linux有有了了一一种种与与ASP媲美的开发语言。媲美的开发语言。15-3PHP简介简介 与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程PHP具具有有良良好好的的安安全全性性,由由于于PHP本本身身的的代代码码开开放放,所所以以其其代代码码在在许许多多工工程程师师手手中中进进行行了了检检测测,同同时时与与Apache编编译译在在一一起起的的方方式式也也可可以以使使其其具具有有灵灵活活的的安安全全设设定定。所所以以到到现现在在为为止止,PHP具具有有公公认认的安全性能。的安全性能。总总而而言言之
17、之,PHP是是进进行行动动态态网网页页编编程程的的一一个个非非常常好好的工具。的工具。15-3PHP简介简介 与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程用户可以从用户可以从PHP官方站点官方站点(http:/ Linux下的编程下的编程安装步骤#cp libxml2-2.5.11.tar.gz /usr /将该工具包拷贝到/usr目录#cd/usr /切换工作目录#tar xzvf libxml2-2.5.11.tar.gz /解压#cd libxml2-2.5.11 /切换目录#./configure /进行编译前配置#make /编译#make install /执
18、行make installLinux下的编程下的编程/接着安装PHP5.3.0#cp php5.3.0.tar.gz/usr /将该工具包拷贝到/usr#cd/usr /切换工作目录#tar xzvf php5.3.0.tar.gz /解压#cd php5.3.0 /切换目录#./configure /进行编译前配置#make /编译#make install /执行make installLinux下的编程下的编程15-4 Apache+php的应用为了正常运行PHP5.0以上版本,还需要编辑apache配置文件httpd.conf的部分选项,并保存即可。主要改动如下:在#AddType a
19、pplication/x-tar.tgz下加一行AddType application/x-httpd-php.php。将#LoadModule php5_module modules/libphp5.so的#号去掉。在DirectoryIndex index.html.html index.html.var后面加index.php使其把index.php Linux下的编程下的编程找到#dont use Group#-1 on these systems!,把该行下面的用户名和组改为User apache和Group apache。去掉#serverName前面的#,并把后面的IP改成实际的
20、Web服务器IP。找到DocumentRoot“/usr/local/apache2/htdocs”,把/usr/local/apache2/htdocs改为用户存放网页文件的路径。为了使中文网页不出现乱码,找到AddDefaultCharset iso8859-1选项,把后面的iso8859-1改为gb2313。Linux下的编程下的编程H1HR一个简单的PHP程序Linux下的编程下的编程给出案例给出案例案例三 Linux下的下的shell编程编程 1.编写简单的shell程序,显示当前的日期和时间。2.通过函数调用的方法上述功能。3.用循环语句编写1-1000累计求和程序。Linux下的
21、编程下的编程15.1 什么是Shell15.2 shell脚本介绍15.3 shell变量15.4 控制结构语句与案例有关的内容分析与案例有关的内容分析Linux下的编程下的编程15.1 shell的概念Shell是核心程序之外的指令解释器,是一个是核心程序之外的指令解释器,是一个程序,同时是一种命令语言和程序设计语言,程序,同时是一种命令语言和程序设计语言,作为作为命令语言命令语言,它可以交互式地解析、执行,它可以交互式地解析、执行用户输入的命令,作为用户输入的命令,作为程序设计语言程序设计语言,它定,它定义了各种变量和参数,并且提供了许多在高义了各种变量和参数,并且提供了许多在高级程序设计
22、语言的程序控制结构。级程序设计语言的程序控制结构。Linux下的编程下的编程15.1.2 shell的类型的类型它虽然不是它虽然不是Linux操作系统核心的一部分,但操作系统核心的一部分,但它调用系统核心中的大部分功能来执行程序它调用系统核心中的大部分功能来执行程序建立文件,并以并行的方式来协调各个程序建立文件,并以并行的方式来协调各个程序的运行的运行。Shell的类型:的类型:ash、bash、csh、kshLinux下的编程下的编程ash:shell 是由Kenneth Almquist编写的,Linux中占用系统资源最少的一个小shell它只包含24个内部命令,因而使用起来很不方便。ba
23、sh :bash是Linux系统默认使用的shell,它由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell 的缩写,内部命令一共有40个。Linux默认的shell。Linux下的编程下的编程ksh:ksh是Korn shell的缩写,由Eric Gisin编写,共有42条内部命令。该 shell最大的优点是几乎和商业发行版的ksh完全兼容,这样就可以在不用花钱购买商业版本的情况下尝试商业版本的性能了。csh:csh是Linux比较大的内核,它由以William Joy为代表的共计47位作者编成,共有52个内部命令。该shell其实是指向/bin/tcs
24、h这样的一个shell,也就是说,csh其实就是tcsh。Linux下的编程下的编程15.1.2 shell的类型的类型/etc/shells:使用:使用cat/etc/shells可以获得系统可以获得系统中有哪些命令解释器中有哪些命令解释器Linux下的编程下的编程echo$SHELL可获得当前运行的可获得当前运行的shell 所有的程序都在所有的程序都在shell中运行中运行shell中可以运行子中可以运行子shell(可用如下命令可用如下命令)#/bin/csh#exit15.1.2 shell的类型的类型Linux下的编程下的编程Linux下的编程下的编程15.1.3 bash的特性b
25、ash是默认的是默认的Linuxshell特点:特点:1.利用上下方向键可以快速使用使用过的命令。2.利用Tab补全命令或者查找有关命令(以指定字符串或者字符开头的命令列表)3.提供自动帮助,获得帮助信息#helpLinux下的编程下的编程15.2 shell脚本介绍本节内容本节内容:使用使用shell脚本的原因脚本的原因shell脚本基本元素。脚本基本元素。shell脚本运行方式。脚本运行方式。Linux下的编程下的编程 15.2.1 使用shell脚本的原因shell脚本在处理自动循环或大的任务方面可节省脚本在处理自动循环或大的任务方面可节省大量的时间,且功能强大。大量的时间,且功能强大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第15章 Linux 下的编程 15 编程
限制150内