当前位置:  技术问答>linux和unix

急!急!急 文件打开问题

    来源: 互联网  发布时间:2017-03-07

    本文导语:       请问如何用程序判断一个文件当前是否被其它的应用程序打开着呢?  是这样的,现在有一个目录,目录里面存放着一个文件,我需要检测一下这个文件当前是否正在被其它的程序使用,如果没有被其它的程...

     请问如何用程序判断一个文件当前是否被其它的应用程序打开着呢?  是这样的,现在有一个目录,目录里面存放着一个文件,我需要检测一下这个文件当前是否正在被其它的程序使用,如果没有被其它的程序使用,就将该文件加密后移动到另外一个地方,然后将该文件所在的目录删除。
     这个问题折腾了我好几天了,现在还是无解。哪位高手能够指点一下呢?

|

用_access函数判断,再次打开时的情况要看你第一次的打开方式了,如果上次用的是非独占打开,那没问题,如果是独占打开,会打开失败

Example

/* ACCESS.C: This example uses _access to check the
 * file named "ACCESS.C" to see if it exists and if
 * writing is allowed.
 */

#include  
#include  
#include  

void main( void )
{
   /* Check for existence */
   if( (_access( "ACCESS.C", 0 )) != -1 )
   {
      printf( "File ACCESS.C existsn" );
      /* Check for write permission */
      if( (_access( "ACCESS.C", 2 )) != -1 )
         printf( "File ACCESS.C has write permissionn" );
   }
}


你也参考VIm打开文件的源码,vim打开文件时,如果此文件已经有别的程序打开,就会显示警告信息。

|
用命令lsof判断看看。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3