if (access("bookinf.txt", 0))
站在用户的角度思考问题,与客户深入沟通,找到阿城网站设计与阿城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖阿城地区。
解释:
if :c语言中的关键字,判断某条件是否为真
access():某个函数名,带两个参数,其中的"bookinf,txt"和0就是传入的两个实际参数。
该句的完整意思:
"如果access函数执行的结果为真,就执行if { }中的语句”
int _access( const char *path, int mode );
Each of these functions returns 0 if the file has the given mode. The function returns –1 if the named file does not exist or is not accessible in the given mode; in this case, errno is set as follows:
Return Value
Each of these functions returns 0 if the file has the given mode. The function returns –1 if the named file does not exist or is not accessible in the given mode; in this case, errno is set as follows:
EACCES
Access denied: file’s permission setting does not allow specified access.
ENOENT
Filename or path not found.
Parameters
path
File or directory path
mode
Permission setting
Remarks
When used with files, the _access function determines whether the specified file exists and can be accessed as specified by the value of mode. When used with directories, _access determines only whether the specified directory exists; in Windows NT, all directories have read and write access.
mode Value Checks File For
00 Existence only
02 Write permission
04 Read permission
06 Read and write permission
此函数有两个参数,需要头文件io.h,第一个是文件的路径,第二个是文件的状态(mode)。如果这个文件有这些状态,就返回0,没有这些状态或文件不存在就返回-1,状态(mode)有4个值00 02 04 06.具体什么意思可以看上面msdn的解释。
file_exists("NOTEXISTS.FIL")返回的是一个布尔值, TRUE就是存在, FALSE就是不存在. 应该明白了吧.
给的程序不是很完全. 下面的例程只是读, absread(0, 1, sector, buf) 的具体函数值需要详查MSDN.
可用于检查文件 是否存在(mode 00),是否只可读(mode 02),是否只可写(mode 04),是否可读写(mode 06)。
函数原型 int _access( const char *path, int mode );
头文件 #include io.h
例如;
#include io.h
#include stdio.h
#include stdlib.h
int main( )
{
// 检查文件 crt_ACCESS.C 是否存在
if( (_access( "crt_ACCESS.C", 0 )) != -1 )
{
printf_s( "File crt_ACCESS.C exists.\n" );
// 检查文件是否 允许写
// 假定 是 只许读 read-only.
if( (_access( "crt_ACCESS.C", 2 )) == -1 )
printf_s( "File crt_ACCESS.C does not have write permission.\n" );
}
}
在C语言里面,只有0才是假,其他都是真。
所以返回-1会判为真。
最好改成:
if(access(filename,imode) != -1)...
或 if(access(filename,imode) == -1)...
int _access(char* path,int mode)\x0d\x0a参数path 是访问文件所在的路径名,mode是访问判断模式,如:R_OK文件是否可读 W_OK文件是否可写入 F_OK 文件是否存在\x0d\x0a \x0d\x0a例如: _access("test.txt",F_OK);\x0d\x0a返回0 表示文件在当前路径已存在,返回-1表示该文件在当前路径不存在