快速业务通道

在进程中利用Open命令打开文件

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-01

Unix系统工程师在开发脚本程序的时候,往往需要在进城中利用Open函数打开某个文件.如在编写一个安装程序的时候,可能需要从一个配置文件中获取相关的参数.此时,就是在安装进程中打开文件.这个时候是不能够使用vi等系统命令的.而需要通过Open等系统调用来实现.其实在使用vi命令打开编写某个文件时,其后台也是通过open系统调用来实现的.

  一、Open命令的基本功能.

  在进程中调用Open命令的格式为:int open (const char *pash,int oflag,…..).这个open命令不仅可以打开文件,还可以创建文件.如果文件存在,则Open命令会打开这个文件;而如果文件不存在的话,则Open命令会创建这个文件.我们看到,在Open命令前面有一个Int关键字,他表示采用Open命令后系统会返回一个文件描述符,它是一个整数的值,一个可以分配的最小整数.它就好像是另外一个形式文件名字,当使用Open命令打开某个文件,然后采用Close命令关闭文件时就需要用到这个文件描述符.在编写脚本程序的时候,系统工程师需要清楚,在什么时候需要用到这个Open命令来打开文件.如果脚本程序只需要用到文件的属性,如编写一个文件备份程序需要用到文件的修改时间这个属性,那么此时是不需要利用Open命令的.这个时间属性不是保存在文件中,而是保存在Inode中.系统工程师就需要了解,哪些是保存在文件中,而哪些内容是没有保存在文件里的.通常情况下,关于文件的全部属性,如所有者、修改时间、权限等属性都不识保存在文件中的.进程访问这些信息时,不需要利用Open命令打开文件.只有对文件本身的内容进行操作,如需要对某个文件进行读写操作时,才需要使用Open命令.最常见的如在安装程序的过程中,会往相关文件中写入安装日志.

  二、文件打开方式.

  在利用Open命令来打开文件,跟采用Vi命令等不同,需要显示的表明以什么方式来打开文件.如某个安装程序,需要打开某个配置文件,则需要指明是以只读方式来打开呢,还是以读写方式来打开这个文件.在Open命令的参数种,采用了三个符号常量来表示三种不同的打开模式.符号常量O_RDONLY表示打开文件只用于读操作;符号常量O_WRONLY表示打开文件只用于写操作;符号常量O_RDWR表示打开文件用于读写操作.为了防止对文件的意外操作,往往需要以合适的方式来打开文件.如某个安装进程,只需要从配置文件中读取参数,而不会往其中写入内容的话,则最好以O_RDONLY只读方式来打开.如在安装时需要往一个文件中写入安装日志的话,则可以以O_WRONLY只写模式打开.可见在部署相关文件的时候,也最好能够做到文件专用.每个文件只负责一个特定的用途,这有利于提高这些文件的重复利用.

Empire CMS,phome.net

  这些常量是定义在fcntl.h文件中的.往往需要在应用程序代码的开头插入#include语句.只有如此应用程序才能够识别这些常量所代表的含义.笔者再次强调一次,采用Open命令打开文件时显示的指名文件打开的类型.为了提高配置文件不被意外损坏,在使用Open命令打开文件时要以最小权限来打开.

  不过光这些文件打开模式往往还不能够满足系统工程师的需要.如我们编写了一个文件备份程序.每次文件备份完毕后,我们都要让这个备份程序往日志文件中加入这次备份的相关信息.如备份程序运行从什么时候开始到什么时候结束,备份了哪些文件等等.这些信息有利于我们日后进行维护与性能的调整.为此我们就需要这个备份程序以追加的方式往原有的日志文件中存入相关的纪录.为了完成这些特殊的功能,Unix操作程序中预定义了一些常用的功能,而不需要我们系统管理员通过复杂的编码来实现.为了满足不同的需要,Unix操作内核一共提供了如下这些功能.跟打开模式一样,也是采用常量来代表不同的功能.如符号常量O_APPEND表示以追加模式打开文件(注意文件的打开模式不能够为只读);如符号常量O_EXC

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号