快速业务通道

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

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-01
L表示若文件存在且使用O_CREAT模式打开的话,则会返回一个错误代码,这可以防止文件被强制覆盖;如符号常量O_SYNC表示读写操作同步执行,也就是说一定要在数据写入到磁盘之后才允许Write命令返回,这可以确保修改的内容保存到了硬盘中,而不知在内存中.当系统工程师需要打开文件完成特定的功能时只需要调用相关的字符常量即可.而不需要另外编写代码来实现.这提高了系统工程师开发程序的效率.这些常量在不同的Unix操作系统中是通用的,为此也不用担心兼容性问题.如现在要以追加的形式打开一个文件,以保存每天的备份信息.此时可以使用如下的形式来打开这个文件:

  Open(“backlist.txt”,O_WRONLY|O_APPEND

  这个命令就表示以只写的方式打开backlist.txt,并以追加的方式往文件中追加相关的日志信息.此时相关的信息会从文件的末尾为只开始写入.也就是说,采用这个功能后,在打开文件时系统会自动把指针设置在文件的结尾部分.之后的文件写入操作就不会覆盖原先的内容,而只是会不断的往文件的末尾追加纪录,文件的大小也会随之增大.注意文件打开模式与功能字符常量之间是用|符号来分隔的.另外Open命令的第一个参数就是需要打开文件的路径与文件名字.这个路径可以是绝对路径也可以使相对路径.不过最好还是采用相对路径,如此的话应用程序位置的改变不会影响到Open命令中的路径.

Empire CMS,phome.net

  三、让多个进程共享一个文件.

  当利用Open命令打开一个文件,而这个命令中又带有O_CREAT字符常量,则如果文件不存在,系统会创建一个文件;如果文件存在的话,则就会覆盖掉原先的文件.为此在使用O_CREAT这个功能的时候,系统工程师需要注意,原先的文件是否不需要了.通常情况下只有在程序安装日志管理中才会使用O_CREAT这个常量.第一次的安装日志在第二次安装过程中往往没有什么作用.为了便于管理员查看安装日志,就直接把前一次的安装日志删除了.

  不过在大部分情况下,采用O_CREAT方式并不是很好的选择.如当某个进程同时访问一个文件时,如果其中一个文件利用O_CREAT功能覆盖了整个文件,那么就会对其他进程的访问产生致命的影响.为了提高多个进程共享一个文件的和谐性,系统工程师需要在Open命令中使用O_Excl功能.它可以限制在访问的过程中其他进程采用O_CREAT功能覆盖着文件.这就是一种多进程共享同一个文件的锁机制.

  如当某个进程在访问backlist.txt文件时,在还没有把更新的内容写入到这文件之前会先给这个文件加一个锁;写入完成后再把这个锁去掉.如果在Open操作使用了O_Excl功能,则只有第一个Open调用才会成功,而其他的Open调用不会成功.也就是说,在同一个时间内,只有一个进程可以打开这个文件,以防止文件的错读.这比通过权限来控制要好的多.此时多个用户进程仍然可以共享这个文件,只要其不是在同一个时间内对这个文件进行操作.

  在进程中利用Open命令来打开文件是程序中对文件进行操作的前提.只有先利用Open命令打开文件,然后应用程序才能够对文件进行操作,如加入内容、删除内容、更新信息等等.故在应用程序编写中,需要以合适的方式、合适的权限来打开相关的文件.若有多个进程需要访问同一个文件,则最好采用锁机制来保障各个进程能够和谐共享这个文件.

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号