Linux程序设计 第10章 Linux的图形编程
Linux基础教程(清华课件)
1.2.1 程序员级接口 系统调用是一组由操作系统提供的广义指令。应用 程序通过系统调用来操纵系统内核中特定的函数, 当应用程序需要进行文件访问、网络传输等操作时, 必须通过系统调用来完成。程序员在设计应用程序 时,涉及到系统资源,都必须使用系统调用来实现, 可以说,系统调用是操作系统提供给程序员的惟一 接口。 系统调用可以根据功能划分为不同的类型。熟悉系 统调用是一个优秀程序员必备的条件。
最初的批处理系统中,计算机内存中仍然只有一个 程序在运行,总体系统的效率仍然没有发挥出来。 解决这个问题的措施称为多道技术。多道程序设计 技术使得在内存中有多个程序,保证系统的处理器 总是处于工作状态,极大地提高了系统的利用率。 多道技术开始使用在批处理系统中,称为多道批处 理系统,这样的系统效率高,但是,在脱机批处理 情况下,高效带来的问题是用户对自己作业的控制 程度降低。针对这个问题的方案是分时技术。分时 系统把处理机的运行时间分成时间片,按照时间片 轮流把处理机分配给每一个联机用户。由于每一个 时间片很短,宏观上来看,所有用户同时操作计算 机,各自独立控制自己的作业。
1.3.3 设备管理 除了CPU和内存之外,计算机的其他部件都统称为 外部设备。这些设备在操作系统的控制下协调工作, 共同完成信息的输入、存储和输出任务。 操作系统要对所有的设备进行管理。一方面,让每 一个设备尽可能发挥自己的特长,实现与CPU和内 存的数据交换,提高外部设备的利用率。另一方面, 隐蔽设备操作的具体细节,对用户提供一个统一、 友好的设备使用界面。 和处理机及内存相比,外部设备的速度要慢得多, 而且性能差别大,类型品种多,因此,设备管理是 一项复杂而又重要的工作。
1.2.2 用户级接口 操作系统提供给用户使用的接口是操作命令,用户 可以使用这些操作命令来组织和控制作业的执行或 者管理整个计算机系统。实际上,计算机的操作命 令界面是在系统调用的基础上开发而成的。 操作系统发展的主要方向除了提高系统资源利用率 之外,就是改善用户界面友好性。 图形用户界面是操纵命令界面发展的一个里程碑。 图形用户界面,降低了计算机操作的门槛,千万个 家庭成为计算机普及的对象。 现在流行的操作系统一般都同时提供图形和文本用 户界面。Linux系统就是如此,文本界面是shell接 口,图形界面是XWindow系统。
Linux下的图形界面编程的实现
Linux下的图形界面编程的实现黄 哲,陈 多Ξ(湖南工程学院计算机科学系,湖南湘潭411104) 摘 要:Linux下的图形界面编程一直是深受软件人员关注的一个问题,因其不具有Windows环境下图形界面开发的各种IDE工具.目前,Linux环境下,大部分图形界面程序都是用Gtk+实现的,文章介绍了Gtk+开发的基本思想,以及基于GKT工具包的图形开发工具G lade,详细叙述了基于Gtk+和G lade的布局方式、信号捕捉的实现,并列举了一个网络聊天室程序实例.关键词:Gtk;G lade;多线程中图分类号:TP31 文献标识码:A 文章编号:1671-119X(2006)01-0058-031 Gtk+2.0介绍1.1 Gtk+2.0的基本原理GT K+是L INU X平台下的X Window图形窗口编程工具,GT K+最初是由California大学Berke2 ley分校的两名学生Spencer K imball和Peter Mattis 开发而成的[1].GT K+从不完善渐渐地发展,到目前为止,成千上万的程序都己经使用GT K+来编写,这预示着GT K+在未来某个时候将得到广泛的应用.GT K+是一个图形用户编程工具,可以免费注册,所以用来开发自由软件或商业软件都不需要什么花费.现在很多L INU X集成系统都己经将GT K+打包进去了.包括RedHat Linux6.0以上版本,还有中文版的Turbo Linux等等.它也越来越被普遍地应用于UN IX系统编程.它为开发GIMP (GNU Image Manipulation Program,GNU图形操作程序)而研制的一套图形界面库,在功能上类似于微软的MFC库,就是为应用软件提供一套平台无关的,简单易用的图形界面接口.它几乎包括所有基本的图形界面元素,如窗口,按钮,列表,滚动条等等.GT K+软件层次:GT K+G D Kglib XL INUX下的C语言软件层次的最底层是L INU X下的C语言基础[2],其它的层次都是基于C语言,可以说GT K+就是C语言在L INU X下的一种扩展,它易学易用,不用关心硬件层的实现,对于编写新手是一门不错的“C语言”.G lib是GT K+,G D K使用的C函数,宏和结构的库,包含内存分配,字符串格式,时间与日期,I/O,定时函数,也包括链接表,数组,HASH 表,队列和缓存的工具函数.X是用来控制显示的底层图形函数库,包括所有窗口函数,有显示窗口和回应鼠标的函数.G D K是为了方便程序员使用而简化X函数的函数库.2002年三月一十一日,GT K+2.0版正式发布,开发者们自豪地宣称“GT K+2.0标志着自由软件领域的图形界面开发工具走向成熟”. 1.2 Gtk+2.0的布局对GT K显示格式的控制是通常通过打包盒子来完成的.widget组件打包可以采用两种方式,水平盒子和垂直盒子.若将widget组件打包进平行盒子,组件就被依次水平的插入窗口;若是垂直盒子,则组件排列是垂直的.产生新的水平盒子的函数为GtkWidget3gtk hbox new(gint homoge2 neous,gint spacing);参数homogeneous是用来控制是否盒子中的每个组件都有同样的大小(例如水平盒子中的控件有同样的宽度,垂直盒子中的控件有同样的高度). Spacing参数是组件之间的间隔.垂直盒子的创建函数是gtk vbox new(),定第16卷第1期2006年3月 湖南工程学院学报Journal of Hunan Institute of EngineeringVo1.16.No.1Mar.2006Ξ收稿日期:2005-09-06作者简介:黄 哲(1979-),男,助教,研究方向:计算机应用.义与水平盒子一致.gtk box pack start()和gtk box pack end()函数是用来将打包对象放入这些盒子中的.void gtk box pack start(GtkBox3box,GtkWidget3child,gint expand,gint fill,gint padding);第一个参数是你将组件打进去的盒子指针,第二个参数是你将要打进去的组件指针.Expand参数是用来控制是否允许组件扩展至分配给盒子空间的大小(选TRU E),还是盒子的大小收缩到组件那么大(选FAL SE).函数中的fill参数是用来控制是否将多余的空间分配给组件,即将组件扩展到盒子的大小(选TRU E),或者多余的空间不变,保留作为盒子和打包组件间的间隔.该参数只有在expand参数取TRU E时才有效.Padding参数是指组件四周与盒子的间隔大小.注意fill取FAL SE值,expand取TRU E值时与expand取FAL SE值,fill值无效的区别.前者的盒子仍是原来创建盒子时指定的大小,而后者的盒子已经缩小到打包组件的大小了.1.2 Gtk+2.0信号捕捉GT K是一个事件驱动工具包,当它运行到gtk-main()函数时会自动睡眠,直到有事件发生,控制权转让给相应的函数调用,在该函数中可以用标准C 写出相应的事物逻辑[3].这与windows上的程序处理是一样的.对窗口对象上发生的事件(如按下鼠标,激活键盘等),GT K有相应的消息信号产生.这时就需要程序员创建一个信号处理器来捕获该信号,并告诉GT K程序事件发生后调用哪个回调函数.信号处理器的创建函数定义如下:gint gtk signal connect(GtkObject3object, gchar3name,GtkSignalFunc callback func, gpointer func data);返回值是一个区分同一对象中的事件与不同回调函数的关联标签.这样可以做到一个对象的一个信号就有任意多个回调函数,并且每一个都会按照声明的顺序执行.函数调用的第一个参数是产生信号的widget组件(即按钮等窗口构件),而name则是希望捕获的信号或事件的名称,callback func则是事件发生后所调用的回调函数名称,而第四个参数func data则是传递给回调函数的参数.回调函数要定义在主程序的前面,它们的一般格式都如下所示:void callback func(GtkWidget3widget, gpointer func data);调用下面这个方法将允许你将回调函数与事件的关联断开:void gtk signal disconnect(GtkObject3ob2 ject,gint id);该函数的第二个参数就是上述gtk signal connect()函数的返回值,即关联标签.第一个参数指向了去除关联的对象名称.这样可以做到断开事件与回调函数的关联,使得事件发生后,不会调用相关的回调函数.2 Gtk的辅助工具G ladeG lade是一种图形界面开发工具,有点类似VB 的感觉,但它只能用于图形界面开发,本身不是一门丰富的程序设计语言,它是依靠GT K+来实现的程序的图形界面,也是说它只是为了简化GT K+的开发而存在的[4].2.1 新建工程当用户在glade窗口新建文件时,glade会弹出一个对话框,上面有两个选项,一个是新建GT K+工程,一个是新建GNOM E2工程,选择新建GT K+工程后,将显示图形界面开发环境.2.2 联编工程当按下主窗口的联编时,G lade产生用来生成程序GU I的所有文件.首先是project#目录,在这个目录中有ac2 config.h、autogen.sh、configure.in、Makefile.am、stamp-h.in、autoconf、autogen、automake文件,其中后3个文件是系统所必须的,在Linux下这个系统能够自动编译并检查库依赖性.通常G lade用户只需输入./autogen.sh来配置他们的程序以及生成所需的Makefiles文件.如果工程需要一个特定的库,这个库将会加入配置文件或生成的Makefiles文件中.在macros subdirectory这个目录中保存了auto2 conf和autogen等系统所需的宏.在src这个目录中有main.c support.c callbacks.c interface.c Make2 file.am Makefile.in Makefile文件,在main.c这个文件中包含了main(),main()是所有C程序的初始化函数.只有当这个文件不存在时G lade才创建,因此你可以随意编辑.当G lade第一次生成main.c文件时,它允许显示所有创建的窗口.如果想在程序开始时只显示一个窗口需要编辑这个文件.在sup295第1期 黄 哲等:Linux下的图形界面编程的实现port.c中包含glade支持函数,不能编辑.里面最有用的函数是lookup-widget(),允许通过另一个控件的名字查找特定控件callbacks.c中主要是glade所写的所有回调函数和信号处理器.G lade不重写这个文件,不过当需要更多的回调函数会向其中追加.G lade只写出了空的回调函数,需要你自己加入内容.interface.c也不能编辑.G lade在里面写了生成GU I的函数.再就是Makefile.am、Makefile.in和Makefile文件,这些文件由automake/autoconf包创建,为gcc编译程序提供指导.在这里可以加入包含的库、新的资源文件等等.2.3 保存工程当你在glade主窗口按下保存时,glade将会在工程选项中指定的目录下保存两个文件.如果没有指定任何工程名字,glade将会保存在个人目录下面的/Projects子目录下.工程名为’Project#’,#是一个数字,与你所建工程数量相关.给工程/程序命名时最好避免歧义.如果命名了工程,用你程序的名字替换下面的project#.保存时创建的两个文件是: Project1.glade和Project1.gladep.Project1’是你选项中给出的名字.这两个文件含有xml代码,glade 或libglade用来调出你所创的程序.如果联编了工程,3.glade文件将会被libglade调用.如果你想在程序中调用libglade那就直接使用3.glade文件.3 Gtk+2.0和G lade的聊天室实例聊天室程序是在Linux环境下用Gtk+2.0和G lade工具实现的[5].它基本用到了Linux下Gtk+图形编程的所有实用技术,包括动态按钮、图形、字体颜色、滚动条等.并结合了网络编程和多线程编程的相关技术.4 结束语目前X窗口(Xwindow)和GNU编译系统已成为应用linux或unix操作系统的计算机工作站和大型计算机上最主要的图形用户界面系统,在微机上也有广泛应用.而Gtk正是两者结合的编程开发包.Gtk+2.0以它熟悉的底层编程语言和方便实用的开发工具,在Linux下的图形界面编程领域有着较好的应用前景.参 考 文 献[1] Arthur Griffith.GNOME/GT K+编程宝典[M].电子工业出版社,2002.109-186.[2] Logan,战晓苏.GT K+程序设计C语言版[M].清华大学出版社,2002.256-374.[3] J.Bhasker.Linux平台下的C语言编程指南[M].机械工业出版社,2000.[4] Kurt Wall.GNU/Linux programming[M].清华大学出版社,2002.[5] 宋国伟.GT K+2.0编程范例[M].清华大学出版社,2002.106-308.R ealization of Linux G raph Interface ProgramingHUAN G Zhe,CHEN Duo(Dept.of Computer Science,Hunan Institute of Engineering,Xiangtan411104,China)Abstract:The Linux graphical interface programming always attracts the accention of the software personnel because it does not have the variow kinds of IDE tool used for the qraphical interface development under the win2 dows environ ment.At present many Linux graph interface programs are realized by Gtk+.The article intro2 duces the basic theory of Gtk+,and the graph development kit G lade based on GKT tool bag.The Layout way based Gtk and the G lade and the signal cpature realization are described in detail.At last,this article gives an example to illustrate the network chatroom.K ey w ords:Gtk;G lade;multithreading06 湖南工程学院学报 2006年。
《Linux操作系统》部分习题答案
第一章Linux系统简介一、思考题1.UNIX的大部分代码是用一种流行的程序设计语言编写的,该语言是什么?C语言2.UNIX系统的特点有哪些?·多任务·多用户·并行处理能力·设备无关性·工具·错误处理·强大的网络功能·开放性3.什么是Linux?其创始人是谁?Linux是一个功能强大的操作系统,同时它也是一个自由软件,是免费的、源代码开放的、可以自由使用的UNIX兼容产品。
其创始人是Linus4.Linux操作系统的诞生、发展和成长过程始终依赖者的重要支柱都有哪些?·UNIX操作系统·MINIX操作系统·GNU计划·POSIX标准·Internet5.简述Linux系统的特点。
·自由软件·良好的兼容性·多用户、多任务·良好的界面·丰富的网络功能·可靠地安全性、稳定性·支持多种平台6.常见的Linux的发行版本有哪些?·Red Hat Linux·Caldera OpenLinux·SuSE Linux·TurboLinux·红旗Linux·中软Linux二、选择题1.Linux最初是以MINIX操作系统为模板而开发出来的。
2.关于Linux内核版本的说法,下列选项中错误的是(C)。
A.表示为主版本号.次版本号.修正号B.1.2.3表示稳定的发行版C.1.3.3表示稳定的发行版D.2.2.5表示对内核2.2的第5次修正(补充:次版本号为偶数的是稳定版本;为奇数的则是测试版本。
)3.Linux属于自由软件。
4.自由软件的含义是软件可以自由修改和发布。
5.一下不具有多任务性的操作系统是DOS第二章Linux系统入门一、思考题1.Linux系统有哪些运行级别?其含义是什么?可用级别为0~6,其中0:关闭系统;6:重新启动,其他略。
linux教程第三版答案
linux教程第三版答案【篇一:linux系统应用教程习题答案】xt>1. linux系统有哪些主要的优点?答:linux的优点主要有:开放性、多用户、多任务、良好的图形用户界面、设备的独立性、丰富的网络功能、可靠的系统安全、良好的可移植性、丰富的应用软件支持、内核完全免费等优点。
2. 常用操作系统有哪些?它们各具有那些特点?答:常用操作系统主要有linux、unix、windows等。
linux是一个内核完全免费、可运行在多个硬件平台、功能齐全、安全性好、界面友好的一种操作系统。
unix功能强大、稳定性好,但价格昂贵,不适合小型企业或者个人使用。
windows是一个功能完全的多任务操作系统,具有丰富的应用软件,友好的用户界面,但windows主要运行在基于intel体系结构的pc系列机上,由微软公司独立控制系统的设计、升级和维护,用户使用windows需要支付一定的费用。
3. linux的组成结构有哪些?答:linux由四个主要部分组成,即内核、shell、文件系统和实用工具。
4. linux系统的主要应用领域有哪些?答:linux系统主要应用在桌面系统、服务器、嵌入式系统和集群计算机等领域。
第2章 linux系统的安装1. 什么是linux的多系统安装?答:linux的多系统安装指在同一台计算机中,除了安装linux外还安装其他操作系统。
此时,需要对计算机中的硬盘空间进行合理分配,并且按照不同操作系统的需要,在硬盘上建立相应格式的分区。
一般来说,linux的多系统安装指在同一台计算机中同时安装windows系统和linux系统。
2. 虚拟机安装linux有什么特点?答:与多系统linux相比,虚拟机安装linux采用了完全不同的概念。
多系统linux在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。
而虚拟机安装linux系统是同时运行多个操作系统,而且每个操作系统都可以进行虚拟的分区、配置而不影响真实硬盘的数据,并且还可以将几台虚拟机连接为一个局域网。
03Linux系统编程介绍
3
系统资源
处理器 输入输出 进程管理 内存 设备 定时器 进程间通信 网络
4
系统调用在系统中所处的位置
所有操作系统都提供多种服务的入口点,由此程 序向系统核请求服务。这些入口点被称之为系统 调用(system call),
5
C库
这里我们所说的C库(libc),指的是标准C定义 的C函数的集合。如标准输入输出函数、字符串 处理函数、动态存储分配函数、日期时间函数、 数学函数等。 GNU发布的libc称为glibc
lseek系统调用 1
功能说明:通过指定相对于开始位置、当前位置或末尾位 置的字节数来重定位 curp,这取决于 lseek() 函数中指定 的位置 原型: off_t lseek (int fd, 需设置的文件标识符 off_t offset, int base); 偏移量 搜索的起始位置
返回值:返回新的文件偏移值
lseek系统调用 2
base 表示搜索的起始位置,有以下几个值:( 这些值定义在<unistd.h>)
base SEEK_SET 文件位置 从文件开始处计算偏移
SEEK_CUR
SEEK_END
从当前文件的偏移值计算偏移
从文件的结束处计算偏移
目录访问 3-1
功能说明:打开一个目录 原型:
15
文件描述符与文件指针转换
fileno:将文件指针转换为文件描述符 fdopen:将文件描述符转换为文件指针
16
文件系统调用
open系统调用 close系统调用 creat系统调用 read系统调用 write系统调用
17Βιβλιοθήκη open系统调用2-1有几种方法可以获得允许访问文件的文件描述符 。最常用的是使用open()(打开)系统调用 函数原型
chapter10 Linux下的GUI编程
精通Linux C编程 精通Linux C编程
三、GTK+/GNOME编程 GTK+/GNOME编程
2、GTK+编程 GTK+编程
任何GTK程序都需要几个基本的函数和组成都分。首先你需要至少 包含头文件gtk.h。根据所使用的构件和函数,可能会需要其他的 GTK头文件。然后必须为想要使用的构件定义指针。随后需要利用 gtk_initt函数初始化GTK库。做完这些以后,就可以利用GTK函数定 义构件,并将它们的地址赋给开始定义的指针。然后,可以利用GTK 函数为构件指定动作和属性,如显示它们。例如,一个关闭方框 (Close box)的事件delete_event绑定到窗口和函数 gtk_main_quit。因此,如果一个用户点击了窗口中的关闭方框 (Close box),程序结束。最后,利用gtk_main函数运行构件。
个能够简化应用程序设计的跳板。 --OpenLook。OpenLook是Sun公司产品的一个免费的工具包,它强调了一种另类的观 感。它是在一个为Xview的函数库上面建立起来的,这个库与Xt很相似。 --Motif。Motif是OSF组织的一个标准,设计目的是为UNIX桌面提供统一的观感。 Motif分为两个主要部分:一组用来定义Xt函数中使用的各种常数的头文件和一个用 来简化对话框和菜单等元素的创建工作的易于使用的函数库。Motif还定义了一种程 序设计风格,不管程序员是否使用Motif工具包,都可以参照它来设计自己的程序。 --Qt。Qt是一个由Trolltech公司出品的函数库,它构成了KDE桌面环境的基础,在大 多数Linux发行版本里都能找到它。Qt编程依赖于大量的C++类集,通常其中每个类 都有一大批成员函数来处理类对象。 --GTK+。GTK+就是GIMP工具包,它是GNOME系统的基石。下面我们将详细介绍如何对 这个高级环境进行程序设计。
shell程序linux课程设计
shell程序linux课程设计一、课程目标知识目标:1. 理解Shell的基本概念,掌握其在Linux系统中的作用和重要性。
2. 学会使用基本的Shell命令,如文件操作、目录切换、权限管理等。
3. 掌握Shell脚本编写的基础知识,包括变量定义、流程控制、函数等。
4. 能够运用所学知识解决实际问题,如编写简单的自动化脚本。
技能目标:1. 培养学生熟练使用Linux终端和Shell命令的能力。
2. 培养学生编写和调试简单Shell脚本的能力。
3. 培养学生运用Shell脚本实现自动化任务的能力。
情感态度价值观目标:1. 培养学生对Linux系统和Shell编程的兴趣,激发学习热情。
2. 培养学生面对问题时的独立思考、解决问题的能力。
3. 培养学生的团队协作意识,学会与他人分享和交流学习经验。
课程性质:本课程为Linux shell程序设计,旨在让学生掌握Shell编程的基本知识,提高其在Linux系统下的操作能力和解决问题的能力。
学生特点:学生具备一定的计算机基础知识,对Linux系统有一定了解,但Shell编程经验较少。
教学要求:结合学生特点,课程设计应注重实践,以实例为主线,引导学生动手实践,提高其编程能力和实际操作能力。
将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容1. Shell概述- Shell的定义与作用- 常见的Shell类型及特点2. 基本Shell命令- 文件和目录操作命令:ls、cd、pwd、mkdir、rm、cp、mv - 权限管理命令:chmod、chown- 文本处理命令:cat、grep、sort、uniq、cut、awk3. Shell脚本编写基础- 变量定义与使用- 流程控制语句:if、for、while- 函数的定义与调用4. Shell脚本实例分析- 简单自动化脚本编写- 系统监控脚本编写- 文件处理脚本编写5. Shell脚本调试与优化- 常见错误类型及解决方法- 调试技巧与优化策略教学内容安排与进度:1. 第1周:Shell概述及基本概念2. 第2周:基本Shell命令学习3. 第3周:Shell脚本编写基础4. 第4周:Shell脚本实例分析5. 第5周:Shell脚本调试与优化教材章节关联:1. Shell概述:《Linux操作系统》第3章2. 基本Shell命令:《Linux操作系统》第4章3. Shell脚本编写基础:《Linux Shell编程》第2章4. Shell脚本实例分析:《Linux Shell编程》第3章5. Shell脚本调试与优化:《Linux Shell编程》第4章三、教学方法本课程将采用以下教学方法,以促进学生主动学习,提高教学效果:1. 讲授法:教师通过讲解Shell编程的基本概念、语法和技巧,为学生提供必要的理论知识。
ARM嵌入式LINUX应用程序设计PPT课件
嵌入式软件测试中经常用到的测试工具: ➢ 内存分析工具 ➢ 性能分析工具 ➢ 覆盖分析工具 ➢ 缺陷跟踪工具
2021/3/18
15
嵌入式Linux面临的挑战
1
2
3
Linux的实时 扩充性
改变Linux内核 体系结构
完善Linux的集 成开发环境
Solution
➢ 扩展 Linux 的实时 性能
向外扩展 向上扩展
页式存储管理机制 页表
硬件无关部分
进程的映射和逻辑内存的对换
硬件相关部分
为内存管理硬件提供了虚拟接口
每个进程保留一张页表,用于将本进程 空间中 的虚拟地址变换成物理地址。
2021/3/18
20
进程调度
当需要选择下一个进程运行时,由调度程序选择最值得运行的进程,依 据每个进程的task_struct结构
交叉开 发环境
开放类型
GNU工具链
➢ 常用的交叉开发环
境主要有开放和商
业两种类型。开放 Metrowerks CodeWarrior
Linux操作系统应用编程课件(完整版)
2.Linux操作系统的发行版
Linux操作系统发行版实际就是Linux内核加上外围实用程序 组成的一个大软件包。相对于Linux操作系统的内核版本,发行版 的版本号随发布者的不同而不同,与Linux操作系统内核的版本号 是相对独立的。因此把SUSE、RedHat、Ubuntu、Slackware等直 接称为Linux是不确切的,它们是Linux操作系统的发行版。更确 切地说,应该将它们称为“以Linux为核心的操作系统软件包”。
Shell是Linux操作系统的一种用户界面,它作为操作系统 的“外壳”,为用户提供使用操作系统的接口。Shell主要有以 下两大功能特点。
(1)Shell是一个命令解释器,它拥有自己内建的Shell命令集。 (2)Shell的另一个重要特性是它自身就是一种解释型的程序设 计语言。
当用户成功登录Linux系统后,系统将执行一个Shell程序。 正是Shell进程提供了命令提示符。作为默认值,Shell对普通用 户用“$”作提示符,对超级用户(root)用“#”作提示符。
1.4.4 联机手册
联机手册命令man可向用户提供系统中各种命令、系统调用、 库函数和重要系统文件的详细说明,包括名字、使用语法、功能 描述、应用实例和相关参考文件等。其格式如下:
$ man [拥有哪个级别的帮助。 -k:查看和命令相关的所有帮助。
查看who命令的详细说明示例如下。 $ man who
Linux操作系统 应用编程
本章主要介绍Linux文件系统,包括文件系统的结构、文 件的定义与分类、目录与文件操作命令、文件的权限管理等, 让读者对Linux文件系统有一定的认识和理解,为后文的学习 打下基础。
2.1.1 组织结构
Linux操作系统中所有文件存储在文件系统中,文件被组织 到一棵“目录树”中,其文件系统层次结构(树状目录结构)如 图2.1所示。树根在该层次结构的顶部,树根的下方衍生出子目 录分支。
linux系统教程课后习题答案
第1章 Linux概述1.什么是Linux?Linux是一套免费使用和自由传播的类UNIX操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86系列和RISC处理器。
这个系统是由世界各地成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。
2.Linux有哪些特性?(1)开放性(2)多用户(3)多任务(4)良好的用户界面(5)设备独立性(6)丰富的网络功能(7)可靠的系统安全(8)良好的可移植性3.Linux与Windows操作系统的主要区别是什么?(1)从发展的背景看,Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows等,都是自成体系,无对应的相依托的操作系统(2)从使用费用上看,Linux是一种开放、免费的操作系统,Windows是封闭的系统,需要有偿使用。
(3)Linux上丰富的应用软件也是自由的,而在Windows下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。
(4)Windows对硬件配置要求高,而Linux在低端PC系统上仍然可以流畅运行4.Linux与Unix的共同点与不同点是什么?共同点:由于Linux是从Unix发展来到,它遵循Unix开放标准,基本支持同样的软件、程序设计环境和网络特性,可以说Linux是UNIX的PC版本,Linux在PC机上提供了相当于UNIX工作站的性能。
与商用Unix的不同点有:1)Linux是免费软件,用户可以从网上下载,而商用的UNIX除了软件本身的价格外,用户还需支付文档、售后服务费用;2)Linux拥有GNU软件支持,Linux能够运行GNU计划的大量免费软件,这些软件包括应用程序开发、文字处理、游戏等方面的内容;3)Linux的开发是开放的,任何志愿者都可以对开发过程做出贡献;而商用UNIX则是由专门的软件公司进行开发的。
Linux入门学习大全超详细 ppt课件
Linux操作系统
1994年,Linux的第一个产品版Linux 1.0问世,如 今Linux家族已经有了近140个不同的版本,所有这些 版本都基于最初的免费的源代码。不同的公司可以推 出不同的Linux产品,但是它们都必须承诺对初始源代 码的任何改动皆公布于众。
Linux操作系统
1.1.2 Linux的优点 Linux之所以受到广大计算机爱好者的喜爱,主要原
Linux操作系统
(2) 可以节省大量的资金。Linux是目前惟一可免费 获得的、为PC机平台上的多个用户提供多任务、多进 程功能的操作系统,这是人们喜欢使用它的主要原因。 就PC机平台而言,Linux提供了比其他任何操作系统都 要强大的功能,Linux还可以使用户远离各种商品化软 件提供者促销广告的诱惑,再也不用承受每过一段时 间就花钱去升级之苦,因此可以节省大量用于购买或 升级应用程序的资金。
Linux操作系统
(5) 提供功能强大而稳定的网络服务。Linux最优秀 的功能莫过于其网络功能。首先,它可以支持众多的 网 络 协 议 , 比 如 TCP/IP 协 议 、 SPX/IPX 协 议 、 NETBEUI协议、X.25协议等;其次,Linux可以提供非 常广泛的网络服务,比如WWW、FTP、E-mail、Telnet、 NFS、DHCP、Samba、防火墙以及企业的群组服务等, 这些功能为Linux提供了无与伦比的网络亲和性。
Linux操作系统
4. 实用工具 标准的Linux系统都有一套叫做实用工具的程序,它 们是专门的程序,例如编辑器、执行标准的计算操作 等。另外,用户也可以产生自己的工具。
Linux操作系统
一般来讲,实用工具可分为以下三类。 (1) 编辑器:用于编辑文件。Linux的编辑器主要 有vi、emacs、pico等。 (2) 过滤器:用于接收并过滤数据。Linux的过滤 器(Filter)读取从用户文件或其他地方输入的数据,经 检查和处理后输出结果。从这个意义上说,它们过滤 了经过它们的数据。Linux有不同类型的过滤器,一些 过滤器用行编辑命令输出一个被编辑的文件;另外一 些过滤器是按模式寻找文件并以这种模式输出部分数 据;
Linux操作系统
• 每个版本又分为以下几种:
• Fedora Desktop
• Fedora Workstation Server(WS)
• Fedora Enterprise Server(ES)
• Fedora Advanced Server(AS)
第七页,共317页。
第一章 Linux简介
• Red Hat Fedora
芬兰的大学生Linus Torvalds在Minix基础上 编写了 一个操作系统核心软件,并于1991年10月公布为 Linux 0.0.2版。随后世界上众多的 Unix爱好者和黑 客共同完善了其余部分。
目前有很多商业公司可以免费得到Linux的核心源 代码,并加以包装和改进后形成自己的产品, 即 Linux发行套件(distribution)。
第一章 Linux简介
一、Linux的发展过程
• 在Linux操作系统面世之前,计算机操作系统市场 主要由两大系统占领:Unix系统和Microsoft Windows。
• Unix是大中小型机、工作站和高档微型机的主流操作 系统,拥有众多的企业用户,并已成为事实上的操作 系统标准。
• Windows系统则以易用性占据了微型计算机操作系统 市场的绝大部分份额。
1992年4月
第一个Linux新闻组comp.os.linux诞生,Linux 0.96首次可以运 行X- Window;
1993年1月 第一个商业发行版Slackware Linux诞生;
1994年3月 Linux 1.0推出,Linux转向GPL版权协议;
1995年3月 Linux 1.2推出;
第二章 图形环境
三、GNOME的基本操作
GNOME面板(即windows任务栏)
图形界面编程的几种实现方式
图形界⾯编程的⼏种实现⽅式1.C++C++以其强⼤的运⾏效率和更接近底层的优势成为使⽤率最⾼的语⾔之⼀。
C++本⾝不包含专门⽤于写图形界⾯的库。
⽤C++写图形界⾯主要有三种⽅式:⼀是调⽤绘图函数直接绘制,即所谓的Win32 API实现⽅式。
这种⽅法⽐较底层,也⼗分复杂,编写难度⼤、效率低,因此应⽤很少。
⼆是调⽤第三⽅的图形界⾯类库实现。
常⽤的类库主要有两种:MFC和Qt。
①MFC(Microsoft Foundation Classes)是微软公司实现的⼀个C++类库,封装了⼤量的Windows API函数。
这种技术运⾏效率⾼,⽤的⼈也很多;但是⽐较古⽼,界⾯不太美观,⽽且代码⽐较难调试。
②Qt是⼀个由奇趣科技开发的跨平台C++图形⽤户界⾯应⽤程序开发框架。
⽀持跨平台特性,是很多Linux程序员的⾸选。
Qt相⽐于MFC更加灵活,也⽐MFC更容易。
究其原因,在于Qt把⾃⾝的实现机制隐藏得很深,相⽐于MFC,初学者可能更不容易理解其中的机制。
三是与微软.NET平台结合,即所谓的C++/CLI。
使⽤C++/CLI编写图形界⾯,可以在Visual Studio中⽤“拖控件”的可视化⽅式实现(这个后⾯还会提到)。
但值得⼀提的是,.NET平台并不是专门针对C++开发的,C++/CLI的出现只是为了使习惯于C++的程序员进⾏.NET开发,因此从这个⾓度讲,如果使⽤.NET开发图形界⾯程序,专门针对.NET平台开发的C#是⽐C++/CLI更优先的选择。
此外,采⽤C++/CLI的程序将带有.NET的特性,如只能在安装有.NET Framework的Windows平台上运⾏等。
这是其相对于Qt的劣势。
2.C#C#是微软公司发布的⼀种⾯向对象的、运⾏于.NET Framework之上的⾼级程序设计语⾔。
它在继承C和C++强⼤功能的同时去掉了⼀些它们的复杂特性,综合了VB简单的可视化操作和C++的⾼运⾏效率,以其强⼤的操作能⼒、优雅的语法风格、创新的语⾔特性和便捷的⾯向组件编程的⽀持成为.NET开发的⾸选语⾔。
linux_教程
1.1 Linux的渊源 的渊源
Linux源于 源于Internet,其内核的编写是由芬 源于 , 兰赫尔辛基大学的一名学生Linus 兰赫尔辛基大学的一名学生 Torvalds独立完成的,堪称编程世界里的 独立完成的, 独立完成的 一大历史壮举。 一大历史壮举。1990年,他在读大学本科 年 计算机专业时, 在自己的机器上, 计算机专业时,Linus在自己的机器上, 在自己的机器上 利用Tanenbaum教授自行设计的微型 利用 教授自行设计的微型 Unix操作系统 操作系统Minix为开发平台,开发了 为开发平台, 操作系统 为开发平台 属于他自己的第一个程序。第二年, 属于他自己的第一个程序。第二年,他完 成了令他誉满全球的操作系统Linux的最 成了令他誉满全球的操作系统 的最 李纳斯·托沃兹 托沃兹(Linus 李纳斯 托沃兹 初内核。第三年, 初内核。第三年,Linus把Linux奉献给自 Torvalds) — Linux 把 奉献给自 由软件基金会Free Software Foundation 之父 由软件基金会 简称FSF)的GNU计划,并公布了全部 计划, (简称 ) 计划 源代码,使得任何人都可以从网上下载、 源代码,使得任何人都可以从网上下载、 分析、修改、添加新功能,甚至出售赢利。 分析、修改、添加新功能,甚至出售赢利。
1.2 Linux的发行版本 的发行版本
Linux的版本有多种不同的说法,但都是大同小异 的版本有多种不同的说法, 的版本有多种不同的说法 下表所示的是Linux的主要发行版本。各个版 的主要发行版本。 的。下表所示的是 的主要发行版本 本的具体详情请参考其Internet站点。 站点。 本的具体详情请参考其 站点
Linux 技术与程序设计
第一章 Linux概述 概述
linux课后习题答案教材课后习题参考答案
第 1 章Linux 概况一、选择题1、以下哪个选项不是Linux 支持的?A. 多用户B. 超进程C. 可移植D. 多进程2、Linux 是所谓的“Free Software〞,这个“Free〞的含义是什么?A. Linux 不需要付费B. Linux 发行商不能向用户收费C. Linux 可自由修改和发布D.只有Linux 的作者才能向用户收费3、以下关于Linux 内核版本的说法,错误的选项是?A. 依次表示为主版本号.次版本号.修正次数的形式B. 1.2.2 表示稳定的发行版C. 2.2.6 表示对内核2.2 的第6 次修正D. 1.3.2 表示稳定的发行版4、以下哪个软件不是Linux 发行版本?A. 红旗 Server 4B. Solaris 10C. RedHat 9D. Fedora 85、与Windows 相比Linux 在哪个方面相对应用得较少?A. 桌面B. 嵌入式系统C. 效劳器D. 集群A6、Linux 系统各组成局部中哪一项为哪一项根底?A.内核 B. X Window C. Shell D. GnomeB7、Linux 内核管理不包括的子系统是哪个?A. 进程管理系统B. 内存管理系统C. 文件管理系统D. 硬件管理系统A8、下面关于Shell 的说法,不正确的选项是哪个?A. 操作系统的外壳B. 用户与Linux 内核之间的接口C. 一种和C 类似的高级程序设计语言D. 一个命令语言解释器B9、以下哪种Shell 类型在Linux 环境下不能使用?A.B ShellB.K ShelC.R ShellD.Bash10、在Linux 中把声卡当作何种设备?A. 字符设备B. 输出设备C. 块设备D. 网络设备二、填空题1、Linux 采用 LRU 算法〔最近最少使用〕算法,淘汰最近没有访问的物理页,从而空出内存空间以调入必须的程序段或数据。
2、之所以Linux 能支持多种文件系统的原因是,Linux 采用虚拟文件系统技术。
Linux入门学习大全超详细 ppt课件
Linux操作系统
第1章 Linux入门及安装
1.1 Linux入门 1.2 红旗Linux的安装 1.3 LILO的配置和使用 习题
Linux操作系统
1.1 Linux 入 门
1.1.1 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,
它主要用于基于Intel x86系列CPU的计算机上。这个系 统是由全世界各地的成千上万的程序员设计和实现的, 其目的是建立不受任何商品化软件的版权制约且全世 界都能自由使用的Unix兼容产品。
Linux操作系统
Linux的出现,最早开始于一位名叫Linus Torvalds的 计算机业余爱好者,当时他是芬兰赫尔辛基大学的学 生,他的目的是设计一个代替Minix(是由一位名叫 Andrew Tannebaum的计算机教授编写的一个操作系统 示教程序)的操作系统,这个操作系统可用于386、486 或奔腾处理器的个人计算机上,并且具有Unix操作系 统的全部功能,这就开始了Linux雏形的设计。
精品资料
Linux操作系统
• 你怎么称呼老师? • 如果老师最后没有总结一节课的重点的难点,你
是否会认为老师的教学方法需要改进? • 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭 • “不怕太阳晒,也不怕那风雨狂,只怕先生骂我
笨,没有学问无颜见爹娘 ……” • “太阳当空照,花儿对我笑,小鸟说早早早……”
Linux以其高效性和灵活性著称,它能够在PC计算机 上实现全部的Unix特性,具有多用户、多任务的能力。 Linux是在GNU公共许可权限下免费获得的,是一个符 合POSIX标准的操作系统。
Linux操作系统
所谓GNU,是Stallman在1984年提出的一个计划, 它的思想是“源代码共享,思想共享”,目的是开发 一个完全自由的,与Unix类似但功能更强的操作系统, 以便为所有的计算机使用者提供一个功能齐全、性能 良好的基本系统。在其他人的协作下,他创作了通用 公共许可证(General Public License,GPL),这对推动 自由软件的发展起了重要的作用。与传统的商业软件 许可证不同的是,GPL保证任何人有共享和修改自由 软件的自由,任何人都有权取得、修改和重新发布自 由软件的源代码,并且规定在不增加费用的条件下得 到源代码(基本发行费用除外)。
Linux程序设计第四版课程设计
Linux程序设计第四版课程设计1. 课程简介本课程旨在通过学习Linux程序设计的基本知识和技能,提升学生的编程能力和解决问题的能力,培养学生对于计算机编程的兴趣和热情。
本课程适合计算机专业的本科生和研究生学习,也适合工作中的程序员进行自我提升和学习。
2. 课程目标通过本课程的学习,学生应该能够掌握以下知识和技能:1.理解Linux系统的架构和原理。
2.掌握C语言在Linux环境下的编程技巧。
3.熟悉Linux下的文件管理和系统调用。
4.理解进程、线程和进程间通信的概念和原理。
5.能够使用Linux下的开发工具进行程序编写和调试。
6.能够开发简单的Linux应用程序和系统工具。
3. 课程内容第一章:Linux系统介绍本章介绍Linux系统的基本结构和命令行操作,包括Linux发行版的选择、Linux的安装和配置、Linux文件系统的管理、Linux常用命令等。
第二章:C语言基础本章主要介绍C语言的基本概念和语法,包括数据类型、运算符、表达式、流程控制语句和函数等。
同时,本章还介绍了C语言在Linux 环境下的编译和调试方法。
第三章:Linux文件操作本章介绍Linux文件系统的基本概念和文件读写函数的使用方法,同时还介绍了Linux下文件权限、文件系统监控和文件操作的实例操作。
第四章:进程和线程本章介绍进程和线程的概念和原理,并介绍了Linux系统下进程和线程的使用方法,包括进程和线程的创建、管理和同步。
第五章:进程间通信本章介绍了进程间通信的主要方法和原理,包括管道、消息队列、信号量和共享内存的使用方法。
第六章:网络编程本章介绍了Linux下网络编程的基本知识和技巧,包括Socket编程、TCP/IP协议、基于UDP协议的Socket编程和多线程服务器的编程方法。
第七章:系统编程本章介绍了Linux系统编程的基本知识和技巧,包括系统调用、模块编程、内核驱动程序和虚拟文件系统的设计和实现。
4. 课程设计为了检验学生在本课程中所学习的知识和技能,本课程设置了以下几个实践性的课程设计:4.1 命令行程序开发使用C语言开发一个简单的命令行程序,要求实现以下功能:1.显示所有文件和目录的名称。
自己整理的Linux课后习题
第一章认识linux系统1.简述linux系统的应用领域。
答:liunx系统的应用主要涉及四个方面:应用服务器、嵌入式领域、软件开发以及桌面应用,linux的长处主要在于服务器和嵌入式两个领域。
2.简述linux系统的特点。
答:1.开放性、2.多用户、3.多任务、4.良好的用户界面、5.设备独立性、6.丰富的网络功能、7.可靠的系统安全、8.良好的可移植性。
3.简述linux系统的组成。
答:linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。
4.简述linux和windows系统的区别与联系。
答:共性:1.都是多用户操作系统,2.支持多种文件系统,3.支持多种端口设备,4.支持联网功能,5.都提供服务。
区别:1.应用目标不同,2.图形界面化不同,3.文件扩展名不同,4.重新引导功能不同,5.命令区分大小写。
5.简述有哪些主流的linux发行版本。
答:1.Mandriva 2.Red Hat 3.SUSE 4.Debian 5.Ubuntu 6.Gentoo 7.Slackware 8.Red Flag 6.简述fedora 8系统的新特性。
答:1.新的Fedora 定制Spins 2.PulseAudio 3.Codec Buddy 4.新的外观 5.新的图形化防火墙配置工具system-config-firewall 6.已增强的打印机管理工具system-config-printer 7.无缝集成蓝牙设备8.Java 支持──IcedTea9.已改进的网络管理NetworkManager 0.7 10.更佳的笔记本电脑支持piz 和Compiz-Fusion 12.包管理改进13.在线桌面14..安全改进15.PolicyKi16.针对Xen、KVM 及QEMU 虚拟化的安全远程管理。
17.翻译基础架构Transifex:Transifex 是一个自由开源的Web 系统,它用来处理提交的翻译。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[root@localhost root]# mkdir /home/cx/10-2 [root@localhost root]# cd /home/cx/10-2 编辑程序 10-2.c 程序代码。 [root@localhost 10-2]# gedit 10-2.c
程序代码 10-2
14
3
10.2 安装和使用SDL图形开发库
表10.1 SDL的基本库与附加库 的库名及含义
库名 SDL
SDL_image SDL_mixer
SDL_ttf SDL_net SDL_draw
含义 基本库 图像支持库 混音支持库 TrueType字体支持库 网络支持库 基本的Linux标准配置的多媒体库,系 统安装时一般都已经默认安装了它们。
9
[root@localhost root]# mkdir /home/cx/10-1 [root@localhost root]# cd /home/cx/10-1 编辑程序 10-1.c 程序代码。 [root@localhost 10-1]# gedit 10-1.c
程序代码 10-1
10
10.3 初始化图形模式
35
10.7 三维绘图
三维绘图的常用函数:
36
10.7 三维绘图
例10.9:设计一个程序,在屏幕上绘制一个立体 矩形,并按照一定的角度和方向旋转。设程序 名为10-10.c,存放在/home/cx/下。
编辑源程序代码:
思考题: 1. 编写一个程序,实现正方体的旋转方向为顺
时针,并且使得旋转的速度加快,正方体的 上下面颜色为红色,左右面颜色为绿色,前 后面颜色为蓝色。(小提示:旋转的速度可 以根据旋转的角度值改变量来实现)。 2. 把例10.9中的正方体改成三棱锥。
18
程序代码 10-3
10.4基本绘图函数的应用
Draw_Circle函数说明
19
思考: 1. 编写一个画圆的程序。要求设置背景色为黄色, 线条颜色为蓝色,以正三角形的三个顶点为圆心, 半径为60画三个圆,同时让屏幕停留8秒。 2. 画一个半径渐渐增大、颜色随机变化的圆。 3. 画一个圆,此圆沿着正弦曲线运动。
程序代码 10-5
24
10.4基本绘图函数的应用
编辑源程序代码 :
25
10.4基本绘图函数的应用
Draw_HLine函数说明:
26
10.4基本绘图函数的应用
Draw_VLine函数说明:
27
10.4基本绘图函数的应用
Draw_Ellipse函数说明:
28
10.4基本绘图函数的应用
编辑源程序代码:
31
10.5 图片与文字显示
SDL_LoadBMP函数说明: SDL_BlitSurface函数说明:
32
10.5 图片与文字显示
例10.7:设计一个程序,初始化视频子系统,设 置显示模式为640*480,表面的色深为16位,使用 SDL_ttf库在屏幕上显示“Linux下TrueType字体 显示示例”,字体大小为38,颜色为红色。设程 序名为10-7.c,注存意放:在文件/h保om存e的/c时x/候下请。使用UTF8格式保
第 10 章 Linux的图形编程
本章重点
1. 使用SDL图形开发库并及图形模式的初始化。 2. 基本绘图函数的应用。 3. 图片与文字的显示。 4. 动画设计。 5. 三维绘图。 6. 用SDL实现简单游戏设计。
2
10.1 Linux的图形编程简介
在Linux 图形编程中,基于控制台的图形库主要有: SVGALib: 是最早基于Linux的非X的图形支持库。 FrameBuffer:出现在Linux 2.2.x内核当中的一种驱动程序
15
10.4基本绘图函数的应用
思考题: 1. 编写一个简单的画线程序:要求设置背景色为红色,线条颜
色为绿色,绘制一个边长为120的正三角形,同时让屏幕停 留8秒。 2. 线段长度无限短后就成为点,请用画线的方法画出正弦曲线。 3. 能否用画线的方法实现动画。
16
10.4基本绘图函数的应用
Draw_Line函数说明
20
10.4基本绘图函数的应用
例10.4:使用SDL_draw库设计一个程序,初始 化视频子系统,设置显示模式为640*480,表面 的色深为16位,用Draw_Rect函数画2个矩形, 一个矩形的左上角坐标是(80,180),宽和高 分别是160和120,颜色为白色,另一个矩形的 左上角坐标是(319,179),宽和高分别是 242和122,颜色为黄色。用Draw_FillRect 函数 画1个矩形,其左上角坐标是(320,180),宽 和高分别是240和120,颜色为红色。 程序名为 10-4.c,存放在/home/cx/SDL_draw-1.2.11下。
10.6动画
例10.8:设计一个程序,实现矩形的运动,矩形 是通过位图显示,当矩形碰到四边时,会自动反 弹,按任意键退出。按程序名为10-8.c,存放在 /home/cx/下,位图素材(b.bmp)也存放在该目 录下。
34
编辑源程序代码:
10.6动画
思考题:编写一个程序,主要实现圆球运动效果,使用键 盘事件,按下Esc键退出程序。
37
10.8 游戏程序入门
例10.10:利用SDL库,综合运用以上所学的函数及方法, 实现大炮打飞机的游戏。游戏初始化的时候大炮在屏幕 底部中间,从屏幕的上方不断出现飞机,保持。可以使 用键盘方向键控制大炮的左右移动,→表示向右,←表 示向左。使用空格键发射炮弹。飞机水平运行,并逐渐 往下移动,大炮弹若是击中飞机,爆炸,系统会立即再 产生飞机,保证飞机数量为2架。假设飞机下降到大炮 的位置,那么大炮就被炸毁,游戏结束。程序名为1010.c,存放在/home/cx文件下。本题中用到的素材大炮、 飞机、背景图片等放在data文件夹里,data文件夹放在 /home/cx文件下。
12
10.4基本绘图函数的应用
例10.2:使用SDL_draw库设计一个程序,初始 化视频子系统,设置显示模式为640*480,表面 的色深为16位,用Draw_Line函数画两条交叉的 直线,一条直线起始点的坐标为(240,180), 终止点的坐标为(400,300),另一条直线起 始点的坐标为(400,180),终止点的坐标为 (240,300)。再用Draw_Pixel函数绘制一条 正弦曲线。程序名为10-2.c,存放在 /home/cx/SDL_draw-1.2.11下。
40
38
10.8 游戏程序入门
编辑源程序代码:
思考题: 1. 改写程序10-8.c,再画一块档板,可
以用“←”、“→”键移动档板,移动 档板,档住方块,使得方块不会与底 边相碰。当方块与档板相碰时,方块 反弹,游戏继续,积分加1;当方块与 底边相碰时,游戏结束,显示积分值。 2. 改写程序10-10.c,改变飞机、大炮的 形状与数量,其余与题10-10.c类似。
10.4基本绘图函数的应用
例10.5:使用SDL_draw库设计一个程序,初始化视频 子系统,设置显示模式为640*480,表面的色深为16位, 用Draw_HLine函数画一水平直线,起始点为(240, 240),长度为160,颜色为白色;用Draw_VLine函数 画一垂直直线,起始点为(320,180),长度为120, 颜色为红色,用Draw_Ellipse函数画一椭圆,圆心 (240,180),x轴径76,y轴径56,颜色为蓝色,用 Draw_FillEllipse填充此椭圆,用Draw_Round画一圆角 矩形,左上角坐标为(322,122),宽为156,高为 116,圆角的半径为10,颜色为绿色,用 Draw_FillRound填充此圆角矩形。
思考题: 1. 编写一个简单的SDL初始化程序:要求背景色为红色,让屏
幕停留5秒。 2. 编写一个简单的SDL初始化程序:要求背景色的红、绿、兰
为随机显示值,让屏幕停留10秒。
11
10.4基本绘图函数的应用
主要应用SDL_draw函数库绘制点、线、圆等基 本图形。
常用的基本绘图函数及功能:
程序代码
21
10-4
10.4基本绘图函数的应用
编辑源程序代码 :
22
10.4基本绘图函数的应用
Draw_Rect函数说明 :
思考题:编写一个画矩形的程序:实现5个矩形从大到 小向屏幕中心依次缩小,每个矩形间隔20个单位,要求 最里面即最小的矩形宽、高分别为80和60,同时让屏幕 停留5秒。
23
Draw_Pixel 函数说明
17
例10.3 使用SDL_draw库设 计一个程序,初始化视频子 系统,设置显示模式为 640×480,画面的色深为 16位,画5个黄色的同心圆, 圆心坐标为(320,240), 最小的圆半径为5,其他圆 的半径以15的大小递增,程 序名为10-3.c,存放在 /home/cx/SDL_draw-1.2.11 下。
接口。 GGI:新一代的图形支持库。可在 FrameBuffer, SVGALib
等设备上运行。在所有平台上提供了一致的输入设备接口, 采用共享库机制, 实现低层支持库的动态装载等 。 OpenGL: 是个专业的3D程序接口,功能强大,调用方便 的底层3D图形库。 SDL:是一个跨平台的多媒体游戏支持库,包含了对图形、 声音、游戏杆、线程等的支持。
4
10.2 安装和使用SDL图形开发库
1.使用SDL库需要包含头文件:#include "SDL.h" 2.编译命令为:gcc –I/usr/include/SDL –lSDL 源 程序名 –o 目标文件名 -lpthread 3.如果程序中使用了图像库和混音库,在编译的时 候还需要加上相应的编译参数,分别是lSDL_image和-lSDL_mixer。