Linux环境C_程序设计教学课件

上传人:努力****83 文档编号:190855039 上传时间:2023-03-01 格式:PPT 页数:612 大小:8.14MB
收藏 版权申诉 举报 下载
Linux环境C_程序设计教学课件_第1页
第1页 / 共612页
Linux环境C_程序设计教学课件_第2页
第2页 / 共612页
Linux环境C_程序设计教学课件_第3页
第3页 / 共612页
资源描述:

《Linux环境C_程序设计教学课件》由会员分享,可在线阅读,更多相关《Linux环境C_程序设计教学课件(612页珍藏版)》请在装配图网上搜索。

1、第第1章章 Linux系统概述和安装系统概述和安装Linux系统是一种类系统是一种类UNIX完整的操作系统。它不仅功完整的操作系统。它不仅功能强大、运行稳定,而且用户可免费使用,分析其源代码。能强大、运行稳定,而且用户可免费使用,分析其源代码。Linux系统支持系统支持x86、ARM等大多数常见硬件架构和等大多数常见硬件架构和TCP/IP等主流网络协议,有良好的跨平台性能,应用面极其广阔。等主流网络协议,有良好的跨平台性能,应用面极其广阔。本章将介绍本章将介绍Linux系统的基本概念,并演示如何安装一套带系统的基本概念,并演示如何安装一套带有有X window图形操作界面的图形操作界面的Lin

2、ux系统发布版。系统发布版。1.1 引言引言计算机系统由硬件系统和软件系统所组成,软件系统计算机系统由硬件系统和软件系统所组成,软件系统中最为重要的是操作系统中最为重要的是操作系统.。Linux作为操作系统管理着计算作为操作系统管理着计算机内所有的硬件资源和软件资源,仿佛是计算机的灵魂。机内所有的硬件资源和软件资源,仿佛是计算机的灵魂。Linux系统基于系统基于GPL协议发布,该协议是协议发布,该协议是GNU项目所创立开项目所创立开放源代码的公共许可证。要理解放源代码的公共许可证。要理解Linux系统并以一种全新的系统并以一种全新的方式开发和发布软件,首先则需要了解方式开发和发布软件,首先则需

3、要了解GNU项目和项目和Linux系系统的渊源。统的渊源。1.1.1 GNU项目简介项目简介GNU项目在项目在1983年由理查德年由理查德斯托曼(斯托曼(Richard Stallman)所创立,)所创立,最初的目标是通过使用必要的工具从源代码开始创建一个自由的类最初的目标是通过使用必要的工具从源代码开始创建一个自由的类UNIX操作系统。此前的软件均以源代码的形式发布,用户可以根据自己需要操作系统。此前的软件均以源代码的形式发布,用户可以根据自己需要修改源代码,但自从那时起,软件厂商为了保护自己的商业利益,开始修改源代码,但自从那时起,软件厂商为了保护自己的商业利益,开始使用编译所得的二进制文

4、件发布软件,从而使软件的源代码变为使用编译所得的二进制文件发布软件,从而使软件的源代码变为“商业商业秘密秘密”。1.1.2 Linux起源起源安德鲁安德鲁塔能鲍姆(塔能鲍姆(Andrew Tanenbaum)出于教学目的编写了名为)出于教学目的编写了名为Minix的类的类UNIX操作系统。操作系统。1991年年8月,林纳斯将自己新设计的操作系统月,林纳斯将自己新设计的操作系统内核通过网络发布,命名为内核通过网络发布,命名为Linux系统。不久之后,系统。不久之后,Linux系统陆续推出系统陆续推出了多个版本,并且吸引了更多开发者加入了多个版本,并且吸引了更多开发者加入Linux系统开发的行列。

5、系统开发的行列。1.1.3 Linux发展现状发展现状如今,如今,Linux系统内核版本已发布到系统内核版本已发布到2.6版,它代表着当版,它代表着当前操作系统技术的最前沿,并依然保持数周内一次的版本更前操作系统技术的最前沿,并依然保持数周内一次的版本更新。更多的开发者进入到新。更多的开发者进入到Linux系统开发的行列中,因此基系统开发的行列中,因此基于于Linux系统的软件资源也十分丰富,而且这些资源同样能系统的软件资源也十分丰富,而且这些资源同样能免费使用。免费使用。Linux系统进入我国的时间较早,我国的工程师对系统进入我国的时间较早,我国的工程师对Linux系统的发展也做出了巨大贡献

6、。所以,系统的发展也做出了巨大贡献。所以,Linux系统在我系统在我国拥有一定的用户基础和大量中文资源。国拥有一定的用户基础和大量中文资源。1.1.4 免费软件与开源软件免费软件与开源软件免费软件与开源软件概念并不相同,免费软件通常以免费软件与开源软件概念并不相同,免费软件通常以二进制文件形式发布,用户虽然可以免费使用,但无权对软二进制文件形式发布,用户虽然可以免费使用,但无权对软件进行任何修改。开源软件是将软件以源代码形式发布,并件进行任何修改。开源软件是将软件以源代码形式发布,并遵循遵循GPL等开源协议,用户不仅能使用,而且还可对软件进等开源协议,用户不仅能使用,而且还可对软件进行改进。行

7、改进。Linux系统是开源软件,所以基于系统是开源软件,所以基于Linux系统开发必须系统开发必须遵循开源规则。这种开发方式最大的优势是,开发者能最大遵循开源规则。这种开发方式最大的优势是,开发者能最大限度的利用现有代码,从而避免重复工作。限度的利用现有代码,从而避免重复工作。1.2 Linux内核与版本内核与版本Linux内核是该操作系统的核心程序文件,通过与其他内核是该操作系统的核心程序文件,通过与其他程序文件组合,程序文件组合,Linux又构成了许多版本。每种又构成了许多版本。每种Linux版本都版本都有其特点,例如嵌入式有其特点,例如嵌入式Linux版本专门用于较小的电子设备版本专门用

8、于较小的电子设备操作,而我们的计算机中常用的是操作,而我们的计算机中常用的是Linux桌面版和桌面版和Linux企业企业版。版。1.2.1 Linux内核介绍内核介绍内核是操作系统的心脏,系统其他部分必须依靠内核这部分内核是操作系统的心脏,系统其他部分必须依靠内核这部分软件提供的服务,内核由中断服务程序、调度程序、内存管理程软件提供的服务,内核由中断服务程序、调度程序、内存管理程序、网络和进程间通信等系统程序共同组成。序、网络和进程间通信等系统程序共同组成。1.2.2 Linux所支持的硬件平台所支持的硬件平台Linux系统支持当前所有主流硬件平台,能运行在各种系统支持当前所有主流硬件平台,能

9、运行在各种架构的服务器,如架构的服务器,如Intel的的IA64、Compaq的的Alpha、Sun的的Sparc/Sparc64、SGI的的Mips、IBM的的S396;也能运行在几;也能运行在几乎全部的工作站,如乎全部的工作站,如Intel的的x86、APPLE的的PowerPC。更吸。更吸引人的是支持嵌入式系统和移动设备,如引人的是支持嵌入式系统和移动设备,如ARM,Linux内核内核短小精湛且功能全面,可根据特定硬件环境裁剪出具备适当短小精湛且功能全面,可根据特定硬件环境裁剪出具备适当功能的操作系统。另外,无论是功能的操作系统。另外,无论是32位指令集系统还是位指令集系统还是64位指位

10、指令集系统,都能高效稳定运行。令集系统,都能高效稳定运行。1.2.3 常用常用Linux版本版本Linux系统拥有多个发行版,它可能是由一个组织、公司或系统拥有多个发行版,它可能是由一个组织、公司或者个人发行。通常一个发行版包括者个人发行。通常一个发行版包括Linux内核、将整个软件安装到内核、将整个软件安装到计算机的安装工具、适用特定用户群的一系列计算机的安装工具、适用特定用户群的一系列GNU软件。常用的软件。常用的Linux发行版本如下:发行版本如下:1Fedora桌面版桌面版2Ubuntu桌面版桌面版3Red Hat服务器版服务器版4OpenSUSE5Debian1.3 系统安装系统安装

11、Linux系统安装是将安装介质内的系统文件复制到设备系统安装是将安装介质内的系统文件复制到设备的硬盘上。安装前需要对硬盘进行分区,的硬盘上。安装前需要对硬盘进行分区,Linux系统拥有专系统拥有专门的分区结构。安装过程中门的分区结构。安装过程中Linux系统还会进行各种程序的系统还会进行各种程序的配置,本节将讲解配置,本节将讲解Linux发行版的安装与配置。发行版的安装与配置。1.3.1 安装前准备安装前准备安装安装Linux系统前,首先可根据用途和硬件平台选择一系统前,首先可根据用途和硬件平台选择一个个Linux发布版本,若读者具备丰富的发布版本,若读者具备丰富的Linux知识亦可从内核知识

12、亦可从内核开始编译一个全新的开始编译一个全新的Linux版本。获得版本。获得Linux发布版本可在因发布版本可在因特网上直接下载,也可通过其他途径获得特网上直接下载,也可通过其他途径获得Linux发布版的拷发布版的拷贝,这是贝,这是GPL协议中的合法行为。安装前需详细了解该版本协议中的合法行为。安装前需详细了解该版本对系统的需求,以及安装设备的硬件环境。对系统的需求,以及安装设备的硬件环境。Linux系统可自系统可自动识别大多数硬件设备,并为其找到合适的驱动程序,但难动识别大多数硬件设备,并为其找到合适的驱动程序,但难免有些不常见的设备需要额外准备驱动程序。免有些不常见的设备需要额外准备驱动程

13、序。1.3.2 系统需求系统需求各种各种Linux版本有不同的系统需求,具体需求可在官方版本有不同的系统需求,具体需求可在官方网站的安装说明内看到。得到系统需求列表后,可与安装设网站的安装说明内看到。得到系统需求列表后,可与安装设备的硬件列表进行对比,通常设备供应商会提供设备上的具备的硬件列表进行对比,通常设备供应商会提供设备上的具体硬件型号列表。下面是当前流行的体硬件型号列表。下面是当前流行的Linux桌面版本最低系桌面版本最低系统需求:统需求:CPU:Intel Pentium兼容兼容CPU,主时钟频率在,主时钟频率在400MHz以上。以上。内存:内存:256MB以上。以上。硬盘:至少硬盘

14、:至少3G空余空间。空余空间。显卡:显卡:VGA兼容或更高分辨率显卡。兼容或更高分辨率显卡。其他:有鼠标、键盘、光驱等设备。其他:有鼠标、键盘、光驱等设备。1.3.3 硬盘分区硬盘分区硬盘是常见的存储设备,大多数计算机上都以硬盘作硬盘是常见的存储设备,大多数计算机上都以硬盘作为主要的外储存器。为了便于管理,为主要的外储存器。为了便于管理,Linux系统允许将一块系统允许将一块硬盘划分为多个分区,或者将多块硬盘划分为一个分区。分硬盘划分为多个分区,或者将多块硬盘划分为一个分区。分区的类型有三种,主分区(区的类型有三种,主分区(primary-partition)和扩展分区)和扩展分区(exten

15、ded-partition)是顶层的分区体系,逻辑分区()是顶层的分区体系,逻辑分区(logical-partition)是扩展分区下的子结构。同一块硬盘上最)是扩展分区下的子结构。同一块硬盘上最多允许存在多允许存在4个主分区和一个扩展分区,扩展分区以下的逻个主分区和一个扩展分区,扩展分区以下的逻辑分区数量并无限制。辑分区数量并无限制。1.3.4 图形方式安装图形方式安装Linux图形化图形化Linux安装程序为用于提供了多种安装语言的选择和安装程序为用于提供了多种安装语言的选择和更简单易懂的安装信息。本节介绍以更简单易懂的安装信息。本节介绍以Fedora 10 Live CD为媒介安为媒介安

16、装装Linux系统的过程。系统的过程。Live CD是是Linux系统最新的发布形式,它不系统最新的发布形式,它不但能直接以但能直接以CD启动计算机进入到启动计算机进入到Linux系统,还提供了图形化安系统,还提供了图形化安装程序。装程序。1.3.5 升级最新内核升级最新内核为了使用为了使用Linux系统最新的特性,可在安装完成后对系统最新的特性,可在安装完成后对Linux内核进行升级。各个发行版的内核进行升级。各个发行版的Linux系统都有软件管理系统都有软件管理器提供自动升级服务,但也可以根据需要手动升级内核。器提供自动升级服务,但也可以根据需要手动升级内核。Fedora和和Red Hat

17、企业版可使用企业版可使用YUM软件管理器升级内核,软件管理器升级内核,在终端输入下列命令:在终端输入下列命令:su/获取根用户权限,将提示输入根用户密码获取根用户权限,将提示输入根用户密码yum update kernel/升级内核升级内核1.3.6 安装中文支持安装中文支持大多数的大多数的Linux发行版都提供了多语言支持,并根据用发行版都提供了多语言支持,并根据用户选择自动安装中文支持。中文支持通常包括中文字符编码户选择自动安装中文支持。中文支持通常包括中文字符编码、中文字库、软件的中文、中文字库、软件的中文UI包和中文输入法。如果包和中文输入法。如果Linux安安装完成后没有安装中文支持

18、,可手动安装。中文支持的安装装完成后没有安装中文支持,可手动安装。中文支持的安装信息可查阅该发行版的中文社区。信息可查阅该发行版的中文社区。1.4 小结小结本章介绍了本章介绍了Linux系统的基本概念和安装方法,系统的基本概念和安装方法,Linux系统是一个开放的操作系统,理解了系统是一个开放的操作系统,理解了GNU项目后可快捷的项目后可快捷的开发各种软件。在学习后面的章节前,读者可根据自身需要开发各种软件。在学习后面的章节前,读者可根据自身需要安装一套安装一套Linux操作系统,以便实践各种开发技能。操作系统,以便实践各种开发技能。第第2章章 Linux基本操作基本操作Linux系统有两种操

19、作方法,一种是使用鼠标键盘等输系统有两种操作方法,一种是使用鼠标键盘等输入设备直接在图形界面入设备直接在图形界面X window上操作,另一种是通过输上操作,另一种是通过输入文本命令方式在控制台上操作。各种入文本命令方式在控制台上操作。各种Linux发行版的操作发行版的操作遵循同样的原则,所以操作方法非常相似。遵循同样的原则,所以操作方法非常相似。2.1 登录登录安装有图形界面的安装有图形界面的Linux系统启动后会直接进入到系统启动后会直接进入到X window中,并提示输入用户名和密码登录。第一次登入可中,并提示输入用户名和密码登录。第一次登入可能需用创建一个新用户,该用户只是一个普通用户

20、,不能直能需用创建一个新用户,该用户只是一个普通用户,不能直接进行系统配置。有些时候需要在控制台上登录,则直接输接进行系统配置。有些时候需要在控制台上登录,则直接输入用户名和密码即可。入用户名和密码即可。2.1.1 shell程序程序shell是一种具备特殊功能的程序,也是介于用户和是一种具备特殊功能的程序,也是介于用户和Linux内核间的一个接口。内核间的一个接口。Linux系统拥有多种系统拥有多种shell,发行版,发行版中常用的是名为中常用的是名为bash的的shell。这种。这种shell不但能执行简单的命不但能执行简单的命令,还能将多个命令、条件和参数编写为程序执行。令,还能将多个命

21、令、条件和参数编写为程序执行。2.1.2 控制台控制台Linux系统是一个多用户多任务的分时操作系统,任何系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统,该账号的名称就是账号,然后以这个账号的身份进入系统,该账号的名称就是登录名。登录名。Linux系统通常有多个控制台,进入控制台后可使系统通常有多个控制台,进入控制台后可使用用shell程序操作计算机。程序操作计算机。2.1.3 终端终端终端是终端是X window里访问里访问shell程序的接口。在程序的接口。

22、在GNOME桌面上打开终端的方式为,选择桌面上打开终端的方式为,选择“应用程序应用程序”|“系统工具系统工具”|“终端终端”命令。命令。2.2 文件和目录文件和目录文件系统是在物理存储设备中存放数据的索引格式,文件系统是在物理存储设备中存放数据的索引格式,文件和目录是数据的逻辑划分形式。在文件和目录是数据的逻辑划分形式。在Linux系统中,文件系统中,文件的准确定义是不包含任何其他结构的数据流。的准确定义是不包含任何其他结构的数据流。Linux系统的系统的文件类型概况起来可分为五种,分别是:普通文件、目录文文件类型概况起来可分为五种,分别是:普通文件、目录文件、链接文件、设备文件和管道文件。件

23、、链接文件、设备文件和管道文件。2.2.1 文件系统文件系统文件系统是磁盘及其逻辑分区的目录结构,一个磁盘设备可文件系统是磁盘及其逻辑分区的目录结构,一个磁盘设备可包含一个或多个文件系统,但每个文件系统必须占据硬盘中单独包含一个或多个文件系统,但每个文件系统必须占据硬盘中单独的一个分区,如图的一个分区,如图2.3所示。所示。2.2.2 文件名文件名Linux系统的文件名由字符和数字组成,其中字符可以系统的文件名由字符和数字组成,其中字符可以是大小写英文字母或其他是大小写英文字母或其他Unicode编码的文字和符号。但不编码的文字和符号。但不能包括能包括“*”、“?”和和“”文件名通配符。文件名

24、通配符。Linux系统的文系统的文件名也有类似其他操作系统的扩展名,在文件名最后一个件名也有类似其他操作系统的扩展名,在文件名最后一个“.”后的内容即是扩展名。例如,后的内容即是扩展名。例如,C语言源文件的扩展名是语言源文件的扩展名是以以“.c”,头文件的扩展名是,头文件的扩展名是“.h”。2.2.3 路径名路径名Linux文件系统采用带链接的树形目录结构,即只有一个根文件系统采用带链接的树形目录结构,即只有一个根目录。根目录可含有下级子目录或文件;子目录中又可含有更下目录。根目录可含有下级子目录或文件;子目录中又可含有更下级的子目录或者文件。这样一层一层地延伸下去,构成一棵倒置级的子目录或者

25、文件。这样一层一层地延伸下去,构成一棵倒置的树,如图的树,如图2.4所示。所示。2.2.4 工作目录工作目录控制台或终端在某个时刻总是对应着一个目录,该目控制台或终端在某个时刻总是对应着一个目录,该目录即工作目录。在控制台或终端执行命令或程序,对某个没录即工作目录。在控制台或终端执行命令或程序,对某个没有指定路径的文件或子目录进行操作,控制台或终端会自动有指定路径的文件或子目录进行操作,控制台或终端会自动在文件或子目录前加入当前工作目录的路径。例如,执行在文件或子目录前加入当前工作目录的路径。例如,执行“ls”命令会将工作目录下的文件和子目录名称显示出来,命令会将工作目录下的文件和子目录名称显

26、示出来,除非在除非在“ls”命令后输入某一具体的路径名称。工作目录可命令后输入某一具体的路径名称。工作目录可用用“.”表示,工作目录上层父目录用表示,工作目录上层父目录用“.”表示。表示。“cd”命令命令用于改变工作目录。用于改变工作目录。2.2.5 起始目录起始目录用户通过控制台或终端登录时,起始目录为用户的主用户通过控制台或终端登录时,起始目录为用户的主目录。默认情况下,起始目录是用户主目录,通常是目录。默认情况下,起始目录是用户主目录,通常是“/home”目录中与用户的登录名相同的一个子目录。起始目目录中与用户的登录名相同的一个子目录。起始目录可用录可用“”符号表示。例如,无论当前工作目

27、录为何处,下符号表示。例如,无论当前工作目录为何处,下列命令都能用于显示起始目录下的文件或主目录:列命令都能用于显示起始目录下的文件或主目录:ls/显示起始目录下所有的文件名与子目录名显示起始目录下所有的文件名与子目录名控制台或终端会将控制台或终端会将“”符号替换成用户起始目录的绝符号替换成用户起始目录的绝对路径,该符号也被认为是环境变量,对路径,该符号也被认为是环境变量,Linux系统会自动维系统会自动维护护“”符号的值。符号的值。2.3 输入和输出输入和输出Linux系统的输入和输出功能由系统的输入和输出功能由Linux内核提供,内核内核提供,内核管理着所有的输入与输出设备,这些设备以设备

28、文件的形式管理着所有的输入与输出设备,这些设备以设备文件的形式存在,保存在存在,保存在“/dev”目录中。所有运行在目录中。所有运行在Linux系统上的应系统上的应用程序必须通过用程序必须通过Linux内核进行输入与输出操作,本节简单内核进行输入与输出操作,本节简单介绍介绍Linux内核的输入和输出概念。内核的输入和输出概念。2.3.1 文件描述符文件描述符文件描述符是一个小的非负整数,内核用以标识某一文件描述符是一个小的非负整数,内核用以标识某一特定进程正在存访的文件。当内核打开一个现存文件或创建特定进程正在存访的文件。当内核打开一个现存文件或创建一个新文件时,它会返回一个文件描述符给该进程

29、,这样该一个新文件时,它会返回一个文件描述符给该进程,这样该进程就能通过内核访问目标文件。进程就能通过内核访问目标文件。2.3.2 标准输入、标准输出和标准错误标准输入、标准输出和标准错误按惯例,每当运行一个新程序时,所有的按惯例,每当运行一个新程序时,所有的shell都为其打都为其打开三个文件描述符:标准输入、标准输出以及标准错误。如开三个文件描述符:标准输入、标准输出以及标准错误。如果像简单命令果像简单命令ls那样没有做什么特殊处理,则这三个描述符那样没有做什么特殊处理,则这三个描述符都连向终端。大多数都连向终端。大多数shell均提供同一种描述方法,这样可以均提供同一种描述方法,这样可以

30、使任何一个或所有这三个描述符都能重新定向到某一个文件使任何一个或所有这三个描述符都能重新定向到某一个文件,例如:,例如:#ls file.list执行执行ls命令,其标准输出重新定向到名为命令,其标准输出重新定向到名为file.list的文件的文件上。上。2.3.3 标准输入输出函数标准输入输出函数标准输入输出函数提供一种对不用缓存的输入输出函标准输入输出函数提供一种对不用缓存的输入输出函数的缓存机制。使用标准输入输出函数的优点是无需担心如数的缓存机制。使用标准输入输出函数的优点是无需担心如何选取最佳的缓存长度,另一个优点与处理输入行有关(常何选取最佳的缓存长度,另一个优点与处理输入行有关(常

31、常发生在常发生在Linux的应用中)。例如,的应用中)。例如,fgets()函数读完一整行函数读完一整行数据,而另一方面,数据,而另一方面,read()函数读指定字节数。函数读指定字节数。2.4 小结小结本章介绍了本章介绍了Linux系统的基本操作,其中包括如何登录系统的基本操作,其中包括如何登录Linux系统、系统、shell的基本命令和作为的基本命令和作为shell接口实现形式的控接口实现形式的控制台与终端。另外本章介绍了制台与终端。另外本章介绍了Linux的文件与目录,只有对的文件与目录,只有对Linux的文件系统有较深的理解,才能更好的掌握后面章节的文件系统有较深的理解,才能更好的掌握

32、后面章节中所介绍文件操作的部分。在本章的最后,简单讲解了中所介绍文件操作的部分。在本章的最后,简单讲解了Linux系统输入与输出的概念,这是计算机程序设计的重要系统输入与输出的概念,这是计算机程序设计的重要基础知识,读者在学习基础知识,读者在学习Linux程序开发中还需要从多个侧面程序开发中还需要从多个侧面了解输入输出技术的知识。了解输入输出技术的知识。第第3章章 Linux GCC/G+编译器与调试器编译器与调试器编译器是将易于编写、阅读和维护的高级计算机语言编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。调试器翻译为计算机能解读、运行的低阶机器语

33、言的程序。调试器是用于查找源代码中的错误,测试源代码和可执行文件的工是用于查找源代码中的错误,测试源代码和可执行文件的工具。具。GNU项目提供了项目提供了GCC编译器、编译器、G+编译器和编译器和GDB调试调试器,这些程序是在器,这些程序是在Linux系统上使用系统上使用C和和C+语言进行开发的语言进行开发的重要工具。本章将介绍这些工具的安装和使用方法。重要工具。本章将介绍这些工具的安装和使用方法。3.1 GCC/G+编译器编译器GCC是是GNU项目中的一个子项目,最初为用于编译项目中的一个子项目,最初为用于编译C语言的编译器。随着语言的编译器。随着GNU项目的发展,项目的发展,GCC已经成为

34、了能已经成为了能编译编译C、C+、Ada、Object C和和Java等语言的等语言的GNU编译器编译器家族,同时还可执行跨硬件平台的交叉编译工作。家族,同时还可执行跨硬件平台的交叉编译工作。G+则是则是专门用来编写专门用来编写C和和C+语言的编译器。语言的编译器。C和和C+语言正在不断语言正在不断发展,为了保持兼容程序语言的最新特性,开发者通常选择发展,为了保持兼容程序语言的最新特性,开发者通常选择GCC来编译来编译C语言编写的源代码,选择语言编写的源代码,选择G+来编译来编译C+源代源代码。码。3.1.1 GCC/G+编译器安装编译器安装安装或更新安装或更新GCC和和G+可在可在GNU项目

35、的官方网站(项目的官方网站(www.gnu.org)去下载相应的安装包,也可以使用)去下载相应的安装包,也可以使用YUM软件软件包管理器安装。安装包管理器安装。安装GCC和和G+的命令如下:的命令如下:yum install make/安装安装make程序程序yum install gcc/安装安装GCC编译器编译器yum install gcc-c+/安装安装G+编译器编译器注意:如果安装过程中提示需要选择编译器版本,可注意:如果安装过程中提示需要选择编译器版本,可根据当前硬件平台选择最新发布的版本。另外,如果提示需根据当前硬件平台选择最新发布的版本。另外,如果提示需要安装其他相关软件包,请

36、一并安装。要安装其他相关软件包,请一并安装。3.1.2 GCC/G+编译命令编译命令GCC/G+编译器没有图形界面,只能在终端上以命令编译器没有图形界面,只能在终端上以命令方式运行。编译命令由命令名、选项和源文件名组成,格式方式运行。编译命令由命令名、选项和源文件名组成,格式如下所示:如下所示:gcc-选项选项 1-选项选项 2-选项选项 n g+-选项选项 1-选项选项 2-选项选项 n 命令名、选项和源文件名之间使用空格分隔,一行命命令名、选项和源文件名之间使用空格分隔,一行命令中可以有多个选项,也可以只有一个选项。文件名可以包令中可以有多个选项,也可以只有一个选项。文件名可以包含文件的绝

37、对路径,也可以使用相对路径。如果文件名中不含文件的绝对路径,也可以使用相对路径。如果文件名中不包含路径,那么源文件被视为存在于工作目录中。如果命令包含路径,那么源文件被视为存在于工作目录中。如果命令中不包含输出的可执行文件名称,默认情况下将在工作目录中不包含输出的可执行文件名称,默认情况下将在工作目录中生成后缀为中生成后缀为“.out”的可执行文件。的可执行文件。3.1.3 GCC/G+编译选项编译选项GCC拥有一百多个编译选项。对于拥有一百多个编译选项。对于C语言和语言和C+语言,语言,G+与与GCC的编译选项基本相同。常用的的编译选项基本相同。常用的GCC和和G+编译编译选项见表选项见表3

38、.1所示:所示:3.1.4 GCC/G+编译器执行过程编译器执行过程GCC和和G+编译器执行过程可总结为四步:预处理、编译器执行过程可总结为四步:预处理、编译、汇编、连接。在预处理过程中,编译器会对源代码中编译、汇编、连接。在预处理过程中,编译器会对源代码中的头文件和预处理语句进行分析,生成以的头文件和预处理语句进行分析,生成以“.i”为后缀的预处为后缀的预处理文件。理文件。3.2 程序和进程程序和进程程序和进程是操作系统中的重要概念,程序是可运行程序和进程是操作系统中的重要概念,程序是可运行的一组指令,程序以二进制代码的形式保存在存储设备中。的一组指令,程序以二进制代码的形式保存在存储设备中

39、。操作系统运行程序后,该程序在内存中的映像就是进程,进操作系统运行程序后,该程序在内存中的映像就是进程,进程是活动的程序。程是活动的程序。3.2.1 程序程序程序是指一组指示计算机或其他具有信息处理能力设程序是指一组指示计算机或其他具有信息处理能力设备每一步动作的指令。备每一步动作的指令。Linux系统下的应用程序主要由两种系统下的应用程序主要由两种特殊类型的文件代表,分别是可执行文件和脚本程序。可执特殊类型的文件代表,分别是可执行文件和脚本程序。可执行文件是能够被计算机直接执行的程序,相当于行文件是能够被计算机直接执行的程序,相当于Windows系系统中的统中的exe文件。使用文件。使用C和

40、和C+语言设计的程序编译后即是可语言设计的程序编译后即是可执行文件。执行文件。Linux系统不要求可执行文件使用特定的扩展名系统不要求可执行文件使用特定的扩展名,文件是否能被执行由文件的系统属性来决定。,文件是否能被执行由文件的系统属性来决定。3.2.2 进程和进程和PID进程是一个具有独立功能的程序关于某个数据集合的进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动,是处于活动状态的程序。进一次可以并发执行的运行活动,是处于活动状态的程序。进程作为构成系统的基本元件,不仅是系统内部独立运行的实程作为构成系统的基本元件,不仅是系统内部独立运行的实体,而且是独立竞争资源的实

41、体。体,而且是独立竞争资源的实体。在在Linux系统中,用户创建进程时会先在系统的进程表系统中,用户创建进程时会先在系统的进程表中为进程创建独一无二的编码,即中为进程创建独一无二的编码,即PID。PID是一个正整数是一个正整数,取值范围在,取值范围在2到到32768之间。进程创建时会顺序挑选下一个之间。进程创建时会顺序挑选下一个未使用的编号数字作为自己的未使用的编号数字作为自己的PID,如果他们已经经过一圈,如果他们已经经过一圈的循环,新的编码重新从的循环,新的编码重新从2开始。数字开始。数字1一般是为特殊进程一般是为特殊进程init保留的,它负责管理其他的进程。保留的,它负责管理其他的进程。

42、3.3 ANSI C标准标准C语言诞生后的很长一段时期内,并没有针对语言诞生后的很长一段时期内,并没有针对C语言制语言制定严格的标准。不同编译器可能使用不同的语法规则或数据定严格的标准。不同编译器可能使用不同的语法规则或数据结构,此状况对程序的移植带来很多麻烦。于是,美国国家结构,此状况对程序的移植带来很多麻烦。于是,美国国家标准协会(标准协会(ANSI)决定统一)决定统一C语言的标准,并于语言的标准,并于1989年颁布年颁布ANSX3.159-1989标准文档,这一标准被称为标准文档,这一标准被称为ANSI C标标准。准。ANSI C标准在订立时吸取了很多标准在订立时吸取了很多C+语言的内容

43、,同语言的内容,同时促使时促使C语言支持多国字符集,其中包括各种中文字符集。语言支持多国字符集,其中包括各种中文字符集。ANSI C标准的推出使标准的推出使C语言保持着活力,成为最受开发者欢语言保持着活力,成为最受开发者欢迎的开发语言。迎的开发语言。3.3.1 函数原型函数原型函数原型由函数的返回类型、函数名和参数三部分组函数原型由函数的返回类型、函数名和参数三部分组成。例如第一行中成。例如第一行中ssize_t表示该函数返回值是表示该函数返回值是ssize_t类型的类型的数值。括号中是参数列表,多个参数用逗号分隔,代码中最数值。括号中是参数列表,多个参数用逗号分隔,代码中最后一行后一行get

44、pid()函数的参数是函数的参数是void,表示,表示getpid函数没有参数函数没有参数。源代码编译时,因为编译器已经知道参数的类型,所以会。源代码编译时,因为编译器已经知道参数的类型,所以会将调用的参数进行强制转换。将调用的参数进行强制转换。3.3.2 类属指针类属指针类属指针是一种能够同时支持所有数据类型的指针,类属指针是一种能够同时支持所有数据类型的指针,函数原型中常用的函数原型中常用的“void*”类型即是类属指针。类型即是类属指针。ANSI C标标准常用类属指针代替函数参数中的其它指针,使同一个函数准常用类属指针代替函数参数中的其它指针,使同一个函数能支持多种数据类型。相关内容将来

45、本书的程序实例中多次能支持多种数据类型。相关内容将来本书的程序实例中多次见到。见到。3.3.3 原始系统数据类型原始系统数据类型在函数原型中以在函数原型中以“_t”结尾的类型被称为原始系统数据结尾的类型被称为原始系统数据类型。原始系统数据类型定义在头文件类型。原始系统数据类型定义在头文件“sys/types.h”中,以中,以typedef操作符加以定义。原始系统数据类型是目标系统数据操作符加以定义。原始系统数据类型是目标系统数据结构的接口,在不同的操作系统中,其字长会有变化。结构的接口,在不同的操作系统中,其字长会有变化。3.4 编译编译hello worldhello world程序作为程序

46、员学习的第一个程序已成为有程序作为程序员学习的第一个程序已成为有趣的惯例。本节将讲述如何使用趣的惯例。本节将讲述如何使用Linux系统中默认的编译器系统中默认的编译器编辑该程序的源代码,并使用编辑该程序的源代码,并使用GCC编译器将该程序编译为编译器将该程序编译为可执行文件。可执行文件。3.4.1 使用使用VI编写源代码编写源代码VI是是Linux系统中最常用的文本编辑器,几乎所有系统中最常用的文本编辑器,几乎所有Linux发行版中都已包含发行版中都已包含VI程序。它工作在控制台或终端中程序。它工作在控制台或终端中,通过,通过shell调用,全部操作均由命令完成,对于初学者来说调用,全部操作均

47、由命令完成,对于初学者来说并不容易掌握。并不容易掌握。3.4.2 程序的编译与连接程序的编译与连接程序经过编译器的编译与连接后,即可生成可执行文程序经过编译器的编译与连接后,即可生成可执行文件。如果源代码有语法错误,则会在终端上显示错误信息。件。如果源代码有语法错误,则会在终端上显示错误信息。有些时候,编译器会出现警告提示,但程序依然被编译成功有些时候,编译器会出现警告提示,但程序依然被编译成功。这表明源代码没有严格按照标准编写,可能会在运行时出。这表明源代码没有严格按照标准编写,可能会在运行时出现意外的结果。继续前面的操作不改变工作目录,编译并连现意外的结果。继续前面的操作不改变工作目录,编

48、译并连接接“helloworld.c”程序,可在终端上输入下列命令:程序,可在终端上输入下列命令:gcc-o helloworld helloworld.c/编译并连接程序编译并连接程序/“-o helloworld”表示使用表示使用“helloworld”作为目标文件作为目标文件名名3.4.3 使用终端运行程序使用终端运行程序Linux系统上运行程序,必须给出该程序完整的路径。系统上运行程序,必须给出该程序完整的路径。前面的前面的“helloworld.c”文件建立在文件建立在“/home/用户名用户名/helloworld”目录中,编译和连接后所生成的可执行文件也目录中,编译和连接后所生成

49、的可执行文件也在该目录中。运行程序则需输入在该目录中。运行程序则需输入“/home/用户名用户名/helloworld/helloworld”。但当前的工作目录已经是。但当前的工作目录已经是“/home/用户名用户名/helloworld”了,所以可用了,所以可用“./”替代工作目录的路径替代工作目录的路径。3.5 GDB调试器调试器程序编写后难免会出现各种错误,当程序完成编译时程序编写后难免会出现各种错误,当程序完成编译时,隐藏的错误可能会使程序无法正常运行,或者不能实现预,隐藏的错误可能会使程序无法正常运行,或者不能实现预期的功能。简单的程序或浅显的错误可依赖程序员的经验判期的功能。简单的

50、程序或浅显的错误可依赖程序员的经验判断出故障点,但现在的软件规格越来越大,调试起来也就越断出故障点,但现在的软件规格越来越大,调试起来也就越来越困难。调试器是帮助程序员修改错误的得力工具,常用来越困难。调试器是帮助程序员修改错误的得力工具,常用的断点、单步跟踪等功能可快速找到故障点。的断点、单步跟踪等功能可快速找到故障点。3.5.1 GDB调试器概述调试器概述Linux程序员中最常用的调试工具是程序员中最常用的调试工具是GDB,GDB调试器调试器是是GNU项目的子项目。该程序提供了所有常用调试功能,项目的子项目。该程序提供了所有常用调试功能,是是Linux系统中最为简单快捷的调试工具。由于当前

51、图形用系统中最为简单快捷的调试工具。由于当前图形用户界面(户界面(GUI)普及,大量基于)普及,大量基于GUI的调试器被开发和运行的调试器被开发和运行在在Linux上。他们大多是以上。他们大多是以GDB为核心配上为核心配上GUI:用户通过:用户通过GUI发出命令,这些命令依次被传送给发出命令,这些命令依次被传送给GDB。其中一个是。其中一个是DDD,意为数据显示调试器。在一些集成开发环境如,意为数据显示调试器。在一些集成开发环境如Eclipse中,也提供了调试功能,并且以中,也提供了调试功能,并且以GDB为核心。为核心。3.5.2 GDB调试器安装调试器安装通常在通常在Linux桌面版的软件开

52、发包集合中已包含桌面版的软件开发包集合中已包含GDB调调试器,如果需要安装或更新试器,如果需要安装或更新GDB调试器,可使用调试器,可使用YUM软件软件包管理器完成,操作方法如下:包管理器完成,操作方法如下:yum install gdb/YUM安装安装GDB调试器调试器3.5.3 GDB常用调试命令常用调试命令GDB调试器调试的对象是可执行文件,使用调试器调试的对象是可执行文件,使用GCC或或G+编译编译器编译源代码时,必须加上选项器编译源代码时,必须加上选项“-g”才能使目标可执行文件包含才能使目标可执行文件包含可被调试的信息。可被调试的信息。3.5.4 在在GDB下运行程序下运行程序打开

53、可执行文件后,可根据需要在程序中加入断点或打开可执行文件后,可根据需要在程序中加入断点或观察点,并运行程序,以观察点,并运行程序,以“helloworld”程序为例,可在为变程序为例,可在为变量赋值前加入断点,并运行程序。继续上一小节的操作,方量赋值前加入断点,并运行程序。继续上一小节的操作,方法如下:法如下:(gdb)break 5/在源代码第在源代码第5行,即变量行,即变量c赋赋值处加入断点值处加入断点(gdb)run/运行程序运行程序3.5.5 检查数据检查数据在程序中加入断点后,程序运行时会在断点处暂时停在程序中加入断点后,程序运行时会在断点处暂时停止,以便检查程序中的数据。通过检查数

54、据可判断出许多种止,以便检查程序中的数据。通过检查数据可判断出许多种错误的所在。错误的所在。“helloworld”程序在第程序在第5行加入了断点,这时行加入了断点,这时第第5行的代码并未执行。检查常量行的代码并未执行。检查常量c的值可输入下列命令:的值可输入下列命令:(gdb)print c/显示变量显示变量c的值的值3.6 小结小结本章介绍了本章介绍了Linux系统下编译系统下编译C和和C+语言的编译器语言的编译器GCC和和G+的基本概念及操作,他们与文本编辑器的基本概念及操作,他们与文本编辑器VI的结的结合,组成了最简单的程序开发环境。另外,本章讲解了程序合,组成了最简单的程序开发环境。

55、另外,本章讲解了程序和进程的概念,程序是编程工作的结果,进程是程序运行时和进程的概念,程序是编程工作的结果,进程是程序运行时在系统上的映射。在系统上的映射。GCC和和G+编译器是遵循编译器是遵循ANSI C标准所标准所设计的,所以本章也简单介绍了设计的,所以本章也简单介绍了ANSI C的概念,当深入学的概念,当深入学习习C语言时,对语言时,对ANSI C标准的了解会避免许多程序错误的产标准的了解会避免许多程序错误的产生。本章的最后介绍了生。本章的最后介绍了GDB调试器,读者还需要在学习中调试器,读者还需要在学习中不断摸索该工具的操作方法。不断摸索该工具的操作方法。第第4章章 Linux 开发环

56、境开发环境在上一章介绍了在上一章介绍了Linux系统上最基本的开发工具,通过系统上最基本的开发工具,通过这些基本开发工具,可构成简单的开发环境。但在纯命令模这些基本开发工具,可构成简单的开发环境。但在纯命令模式下编辑源代码和调试软件并不方便,特别是开发大型复杂式下编辑源代码和调试软件并不方便,特别是开发大型复杂软件。本章将介绍一些更为强大的开发工具,这些开发工具软件。本章将介绍一些更为强大的开发工具,这些开发工具结合结合GCC、G+编译器和编译器和GDB调试器,组成了非常友好的调试器,组成了非常友好的开发环境,可以与开发环境,可以与Windows系统下的集成开发环境相媲美。系统下的集成开发环境

57、相媲美。4.1 文本编辑工具文本编辑工具文本编辑工具是用来编写源代码的应用程序。文本编辑工具是用来编写源代码的应用程序。Linux上上比较流行的文本编辑工具有比较流行的文本编辑工具有VI、Gedit、VIM和和Emacs,这,这几个应用程序在编辑源代码时有各自的优点。下面以几个应用程序在编辑源代码时有各自的优点。下面以VIM和和Emacs为例讲解文本编辑工具的用法。为例讲解文本编辑工具的用法。4.1.1 VIM使用方法使用方法 Linux系统下大多数文本编辑工具都可以直接在编辑区输入系统下大多数文本编辑工具都可以直接在编辑区输入字符,并且能够通过一些命令来完成一些控制功能。字符,并且能够通过一

58、些命令来完成一些控制功能。VIM编辑器编辑器继承了这些特性,它既能工作在终端中,又能工作在继承了这些特性,它既能工作在终端中,又能工作在X window中中,基本操作与,基本操作与VI相似,此外还提供了一些更适合源代码开发的特相似,此外还提供了一些更适合源代码开发的特性。性。4.1.2 Emacs使用方法使用方法为了方便大型系统的开发,为了方便大型系统的开发,GNU项目又推出了项目又推出了Emacs文本编文本编辑器。该编辑器运行在辑器。该编辑器运行在X window环境中,不但具备所有基本的文环境中,不但具备所有基本的文本操作功能,同时为开发项目提供一些必备的应用环境。本操作功能,同时为开发项

59、目提供一些必备的应用环境。4.2 集成开发环境集成开发环境集成开发环境是将一些开发工具集合到同一个操作界集成开发环境是将一些开发工具集合到同一个操作界面的工具软件,它通常由项目管理器、文件管理器、文本编面的工具软件,它通常由项目管理器、文件管理器、文本编辑工具、语法纠正器、编译工具、调试工具组成。在辑工具、语法纠正器、编译工具、调试工具组成。在Linux系统中开发系统中开发C、C+语言程序,可选择的集成开发环境有语言程序,可选择的集成开发环境有Eclipse和和Kdevelop,分别运行在,分别运行在GNOME桌面环境和桌面环境和KDE桌桌面环境。面环境。Linux系统下的集成开发环境通常自身

60、不包含编译系统下的集成开发环境通常自身不包含编译器和调试器,而是直接利用器和调试器,而是直接利用GCC、GDB等工具进行组合。等工具进行组合。工具组合正代表了工具组合正代表了Linux系统上软件设计的思想。系统上软件设计的思想。4.2.1 Eclipse介绍介绍Eclipse最初是由最初是由IBM公司开发,公司开发,2001年年11月正式贡献给开源社区,月正式贡献给开源社区,现在由非营利软件供应商联盟现在由非营利软件供应商联盟Eclipse基金会管理。基金会管理。2003年,年,OSGi服务平服务平台规范成为台规范成为Eclipse运行时架构。最初运行时架构。最初Eclipse用于开发用于开发

61、Java语言程序,但语言程序,但加入加入CDT插件后就能进行插件后就能进行C和和C+语言程序开发,并具备如下特性:语言程序开发,并具备如下特性:显示提纲,显示提纲,Outline窗口模块可显示源代码中的过程、变量、声明以窗口模块可显示源代码中的过程、变量、声明以及函数的位置。及函数的位置。源代码辅助,可结合上下文提示需要输入的源代码,并检查源代码源代码辅助,可结合上下文提示需要输入的源代码,并检查源代码中的语法错误。中的语法错误。源代码模板,扩展源代码辅助功能中使用的源代码标准,加入自定源代码模板,扩展源代码辅助功能中使用的源代码标准,加入自定义的源代码段,可加快代码编辑速度。义的源代码段,可

62、加快代码编辑速度。源代码历史记录,在没有使用源代码历史记录,在没有使用CVS等版本控制工具的情况下,也可等版本控制工具的情况下,也可记录源代码的修改情况。记录源代码的修改情况。4.2.2 Kdevelop介绍介绍Kdevelop是一个支持多种程序设计语言的集成开发环境,它运行在是一个支持多种程序设计语言的集成开发环境,它运行在KDE桌面环境,可支持桌面环境,可支持C、C+语言程序发开。语言程序发开。Kdevelop很好的支持了很好的支持了Qt图形界面工具包,因此是开发图形界面工具包,因此是开发KDE桌面工具的理想环境。用于开发桌面工具的理想环境。用于开发C、C+语言程序时,它的主要特性如下:语

63、言程序时,它的主要特性如下:源代码高亮显示,源代码高亮显示,Kdevelop的编译功能和调试功能该编辑器支持源的编译功能和调试功能该编辑器支持源代码高亮显示和自动缩进的功能代码高亮显示和自动缩进的功能.。项目管理,项目管理器可以管理各种不同的项目类型,。项目管理,项目管理器可以管理各种不同的项目类型,。类浏览器,该功能可在进行面向对象开发时,快速了解对象的结构类浏览器,该功能可在进行面向对象开发时,快速了解对象的结构。GUI设计器,可进行可见即可得的方式编辑软件的图形界面。设计器,可进行可见即可得的方式编辑软件的图形界面。并行版本控制,支持并行版本控制,支持CVS、Subversion、Per

64、force和和ClearCase等常等常用版本控制工具。用版本控制工具。4.3 使用使用Eclipse开发开发C/C+语言程序语言程序综合比较而言,综合比较而言,EclipseEclipse集成开发环境是集成开发环境是LinuxLinux系统中系统中最简便的开发工具,不仅适合与初学者使用,也被众多最简便的开发工具,不仅适合与初学者使用,也被众多LinuxLinux程序设计专家所选择的。因此,本书推荐使用程序设计专家所选择的。因此,本书推荐使用EclipseEclipse作为读者首选的开发环境。作为读者首选的开发环境。4.3.1 安装与配置安装与配置EclipseEclipse运行需要运行需要J

65、RE支持,所以首先要确保系统中已安装支持,所以首先要确保系统中已安装JRE。Eclipse首次运行要求配置工作目录首次运行要求配置工作目录workspace,这个目录是默认用来存放,这个目录是默认用来存放源代码与相关项目文件的位置,当前用户必须有该目录读写和执行的权源代码与相关项目文件的位置,当前用户必须有该目录读写和执行的权限。限。4.3.2 Eclipse界面界面Eclipse界面由数个视图窗格组成。左边为界面由数个视图窗格组成。左边为Project Explorer视图,该视图用于创建、选择和删除项目。正中间视图,该视图用于创建、选择和删除项目。正中间的窗格是编辑器区域,该区域用于编辑源

66、代码,可同时打开的窗格是编辑器区域,该区域用于编辑源代码,可同时打开多个文件。编辑器区域右侧的多个文件。编辑器区域右侧的Outline视图在编辑器中显示视图在编辑器中显示文档的大纲,这个大纲的内容取决于源文件的类型。对于文档的大纲,这个大纲的内容取决于源文件的类型。对于C和和C+源代码文件,该大纲将显示所有被包含的函数库、函源代码文件,该大纲将显示所有被包含的函数库、函数、常量、变量、已声明的类、属性和方法等信息。数、常量、变量、已声明的类、属性和方法等信息。4.3.3 编译与运行源代码编译与运行源代码编译与运行源代码前,首先需要保证编译与运行源代码前,首先需要保证GCC、G+编译器和编译器和GDB调试器已安装。调试器已安装。Eclipse通过调用通过调用GCC、G+编译器实现源代编译器实现源代码编译,因此必须要将源代码的相关信息建立为项目文件,这样码编译,因此必须要将源代码的相关信息建立为项目文件,这样才能使才能使Eclipse知道该使用哪一个编译指令。知道该使用哪一个编译指令。4.3.4 Debug源代码源代码Eclipse的的Debug功能是调用功能是调用GDB调试器实现的,与调

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!