LINUX程序的设计.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LINUX程序的设计

淘宝才智专线 / Linux程序设计 课程主要内容 Linux程序设计基础 Shell程序设计 文件操作 终端 数据管理 开发工具 调试 用GTK+进行GNOME编程(选) 教材 Neil Matthew, Richard Stones著,陈健、宋健建译,Linux程序设计(第4版),人民邮电出版社 成绩构成 实验成绩 考勤、课堂练习 期末考试 第1章 Linux程序设计基础 1.1 简介 Linux程序员可用的部分编程语言: Ada, C, C++, Fortran, Java, Javascript, Pascal, Perl, Python, PHP …… Linux程序 Linux程序表现为两种特殊类型的文件: 可执行文件:相当于Windows中的.exe文件 脚本文件:一组指令的集合,这些指令将由另一个程序(即解释器)来执行。相当于Windows中的.bat, .cmd文件 Linux并不要求可执行文件或脚本文件具有特殊的文件名或扩展名。通过文件属性来指明一个文件是否为可执行的程序。 PATH变量 当登录进Linux时,用户与一个shell程序(通常是bash)进行交互,它在一组指定的目录路径下按照用户给出的程序名搜索与之同名的文件。搜索的目录路径存储在shell变量PATH里。 PATH变量的例子: /usr/local/bin : /bin : /usr/bin: . : /home/neil/bin 用冒号分隔PATH变量里的条目 文本编辑器 Vi emacs C语言编译器 在Linux系统中,C语言编译器通常是gcc。 1.2 开发系统导引 对Linux开发人员来说,了解软件工具和开发资源在系统中存放的位置是非常重要的。 本节主要介绍一些重要的文件和目录: 应用程序 头文件 库文件 1. 应用程序 系统为正常使用提供的程序,包括用于程序开发的工具,都可在/usr/bin中找到; 系统管理员为某个特定的主机或本地网络添加的程序通常可在目录/usr/local/bin或/opt中找到。 2. 头文件 对于C语言来说,头文件几乎总是位于/usr/include目录及其子目录中。那些依赖于特定Linux版本的头文件通常可在目录/usr/include/sys和/usr/include/linux中找到。 在调用C语言编译器时,可以使用-I标志来包含保存在子目录或非标准位置中的头文件。例: gcc –I /usr/openwin/include fred.c 它指示编译器不仅在标准位置,也在/usr/openwin/include目录中查找程序fred.c中包含的头文件。 3. 库文件 库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。 标准库文件一般存储在/lib和/usr/lib目录中。 库文件的名字总是以lib开头,随后的部分指明这是什么库,文件名的最后部分以.开始,然后给出库文件的类型: .a 代表传统的静态函数库; .so代表共享函数库。 例: libm.a libc.so 库文件的使用 例:$ gcc –o fred fred.c /usr/lib/libm.a 该命令要求编译器编译文件fred.c,产生可执行文件fred,并且除了搜索标准的C语言函数库外,还搜索数学库libm.a以解决函数调用的问题。 以上命令也可写成: $ gcc –o fred fred.c -lm 其中的-lm是简写方式,它代表的是标准库目录(/usr/lib)中名为libm.a的函数库。 -lm标志的另一个好处是,如果有共享库,编译器会自动选择共享库。 静态库 静态库,也称作归档文件(archive),按惯例,它们的文件名都以.a结尾。例: 标准C语言函数库/usr/lib/libc.a X11函数库/usr/lib/libX11.a P9实验 静态库 静态库的缺点:当你同时运行许多应用程序并且它们都使用来自同一个函数库的函数时,内存中就会有同一函数的多份副本,而且在程序文件自身中也有多份同样的副本。这将浪费大量的内存和磁盘空间。 共享库 共享库的保存位置与静态库相同,但其扩展名不同。共享库的扩展名为.so。 当一个程序使用共享库时,它的链接方式是:程序本身不再包含函数代码,而是引用运行时可访问的共享代码。当编译好的程序被装载到内存中执行时,函数引用被解析并产生对共享库的调用,如有必要,共享库才被加载到内存中。 通过这种方法,系统可以只保留共享库的一份副本供许多应用程序同时使用,并且在磁盘上也仅保存一份。 共享库的优点 当多个进程使用同一共享库时,Linux将共享库中存放可执行代码的内存进行共享。因此,无论有多少个程序要使用某

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档