c语言打开文件前,如何判断该文件是否已经被打开

c语言打开文件前,如何判断该文件是否已经被打开,第1张

用_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 <io.h>

#include <stdio.h>

#include <stdlib.h>

void main( void )

{

/* Check for existence */

if( (_access( "ACCESS.C", 0 )) != -1 )

{

printf( "File ACCESS.C exists\n" )

/* Check for write permission */

if( (_access( "ACCESS.C", 2 )) != -1 )

printf( "File ACCESS.C has write permission\n" )

}

}

自己找到答案了。开个小号来收走。

文件结构体中有状态标识符,可以用来判断文件是的打开状态。windows下面是_flag,linux上面是flags,solaris上面的结构体变量中没有状态标识符。但是linux和solairs上面都可以用fileno来获得文件的描述符,然后用fcntl来获得文件的状态标识。fcntl(fd,F_GETFL),大概是这样写。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12037631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存