linux程序设计第3章_第1页
linux程序设计第3章_第2页
linux程序设计第3章_第3页
linux程序设计第3章_第4页
linux程序设计第3章_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 文件操作1、Linux文件与设备2、库函数3、输入输出函数的使用Linux文件及类型ls 命令显示颜色的含义:(补充)绿 色可执行文件蓝 色目录红 色压缩文件浅蓝色链接文件灰 色普通(一般)文件Linux 系统目录结构文件与设备P79Linux文件分类有:一般文件、目录文件、设备文件和链接文件等四类。 Linux比较重要的3个设备文件P80系统控制台:/dev/console进程控制的终端:/dev/tty空设备:/dev/null系统调用与设备驱动程序P80通过系统调用可以进行文件操作。通过系统调用可以访问操作系统的内核,其实内核是一组设备驱动程序,它们是系统与硬件之间的一个接口。P

2、82图3-2显示了用户程序、系统调用、设备驱动程序以及硬件之间的关系。底层文件访问P82文件描述符:与进程相关的文件或设备编号。一般是小值整数。在完成系统启动后,自动打开了三个文件,就是标准的I/O设备,它们 的描述符是:0、1、2.。write系统调用:P82 示例read系统调用:P83 示例open系统调用:P84注意 用户在创建新文件时,系统通常按默认值赋予其权限: 目录 一般文件root 755 644普通用户 775 664影响用户的权限默认值的是个与用户相关的系统值umask。Root 的umask=022,普通用户的umask=002P87系统调用程序 P87页运行结果:库与I

3、/O标准函数 1、库:在linux系统中,可将多个目标文件打包成库文件,以便可以在编程时,随时调用,而不必重新编写或定义。这种包称为库函数。在linux系统中,库函数又分为标准与非标准(自定义)两大类,标准的库函数是公用的,一般放置于/usr/include 目录中,并以头文件的方式提供包含调用;自定义的库函数(除了标准的以外)可以放在任意目录,一般放于当前目录中,使用库函数时,标准与非标准库略有区别:# include 这是标准库的使用,默认到/usr/include目录下查找stdio.h文件。# include “stdio.h” 除了查找默认的目录外,还会搜索当前目录库的使用 库的使用

4、也区分是否为标准库。如果是标准库,如libc.a它是标准C库函数,gcc等编译程序能够自动链接,所以,在使用时,只需要包含其定义的头文件即可。而非标准的库,就必须在包含头文件外,加上链接库函数的操作。注意:-l 选项链接的是lib与.a之间的子串,所以-lm所链接的库文件是:libm.a库的包含-L dir 指定编译的时候,搜索库的路径。例如:# gcc foo.c -L /home/username/lib -lfoo -o foo $gcc L /home/mylib -lbruce main.c o main实际上是链接到/home/mylib 目录中的libbruce.aar程序的使用

5、(补充) 在linux中,ar实用程序是库管理程序。通过它可以执行各种与库相关的操作。 ar用于建立、修改、提取归档文件(archive),一个归档文件,是包含多个被包含文件的单个文件(也可以认为归档文件是一个库文件)。被包含的原始文件的内容、权限、时间戳、所有者等属性都保存在归档文件中,并且在提取之后可以还原ar 命令的使用 格式:ar 关键字 归档库文件名 文件列表功能: 创建、处理库的归档。将一组目标文件打包成一个库函数,其扩展名必须是.aar 命令的使用 关键字:-d删除归档库文件中的成员文件。-m变更成员文件在归档库文件中的次序。-p显示归档库文件中的成员文件内容。-q在现有归档库文

6、件添加一个成员文件。-r将文件插入归档库文件中。-t显示归档库文件中所包含的文件。-x从归档库文件中提取出成员文件。 ar 命令的使用 示例:ar r libmath.a input.o compute.o将两个目标文件,打包成一个libmath.a的库函数。此例使用了关键字r创建库函数;关键字q在已有的库函数后追加新的目标文件。ar 命令的使用 示例:# ar t libmath.ainput.ocompute.o关键字t 可用于显示库函数中的文件列表;关键字 d 从已打包的库函数中,删除目标文件# ar d libmath.a input.o# ar t libmath.acompute.

7、o关键字 x 从归档中提取目标文件。# ar x libmath.a compute.o# ls /查看是否在当前目录多了一个 compute.o使用ar建立库文件示例 在代码中使用Add和Minus函数 在编译时指定库文件 库的安装 当库被打包好之后,还需要经过安装到标准库文件的位置,可能供其他用户使用。库安装步骤:1)将包含函数定义的头文件,放在/usr/include目录中;2)将所归档的库(*.a),放到/usr/lib 目录中标准I/O函数 标准的I/O文件名为stdin,stdout,stderr,这三个文件就是文件描述符为0、1、2的文件。前面所介绍的读、写、打开文件等函数都是底

8、层函数,而现在所介绍的是标准库函数,使用库函数可以避免对缓冲的设置等具体的问题,使函数的调用变得更容易。这个函数的原型就可以看出。P91标准I/O函数 1)常用库函数:fopen, fread, fwrite, fclose, fflush, fseek, fgetc, putc, fgets 等。2)格式化输入、输出函数P94文件流与文件描述符P99 每一个文件流都与一个底层文件描述符相关联。可以通过fileno()函数调用,得到相应的文件描述符。0,1,2 3文件与目录维护P100 1)chmod、chown系统调用,与命令相对应。Chmod()2)unlink、link、symlink系统调用,与删除文件,链接文件命令相对应。ls -l3)mkdir、rmdir、chdir cd对应与创建、删除和改变目录

温馨提示

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

评论

0/150

提交评论