C++ _access和_waccess的使用方法
C++ _access和_waccess的使用方法
概述
头文件:<io.h>
判断文件的访问权限
原型
int _access( const char *path, int mode);
int _waccess(const wchar_t *path, int mode );
参数
path 文件或目录路径
mode 访问权限设定
返回值
如果文件具有指定的访问权限,则函数返回0;如果文件不存在或者不能访问指定的权限,则返回-1。
备注
当path为文件时,_access函数判断文件是否存在,并判断文件是否可以用mode值指定的模式进行访问。当path为目录时,_access只判断指定的目录是否存在,在Windows NT和Windows 2000中,所有的目录都有读写权限。
mode的值和含义如下表所示:
|
mode值 |
检查文件 |
|
00 |
只检查文件是否存在 |
|
02 |
写权限 |
|
04 |
读权限 |
|
06 |
读写权限 |
_waccess是_access的宽字符版本,_waccess的参数path为宽字符的字符串,其他与_access相同。
实例
该实例使用_access判断文件是否存在,并判断文件是否可写。
// crt_access.c
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
/* 判断文件是否存在 */
if( (_access( "crt_ACCESS.C", 0 )) != -1 )
{
printf( "File crt_ACCESS.C exists\n" );
/* 判断文件是否可写 */
/* 假设文件时只读的 */
if( (_access( "crt_ACCESS.C", 2 )) == -1 )
printf( "File crt_ACCESS.C does not have write permission\n" );
}
}
输出:
File crt_ACCESS.C exists
File crt_ACCESS.C does not have write permission
C++ _access和_waccess的使用方法的更多相关文章
- 判断文件是否存在的另一种方法 _access 和 _waccess
函数原型: int _access( const char *path, int mode ); int _waccess( const wchar_t *path, int mode ); 示例代码 ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- VC++ 判断文件或文件夹是否存在的快捷方法 _access
_access函数 int _access( const char *path, int mode ); int _waccess( const wchar_t *path, int mode ); ...
- c 判断文件或文件夹是否存在,多种方法, 为什么从一开始就不直接来个统一的呢?
具体内容,请看: https://blog.csdn.net/u012494876/article/details/51204615 判断文件或文件夹是否存在,竟然有这么多方法: GetFileAtt ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
随机推荐
- C语言中 v...printf类函数的用法
C语言的自学渐渐接近尾声,今天学到了标准库中的stdarg.h头,里面关联了stdio.h头里面的一类函数:v...printf函数,里面举的例子看了之后还是不太明白,google了一下依旧不是很懂, ...
- 读《编写高质量代码-Web前端开发修炼之道》笔记
第一章 1.Web标准由一系列标准组合而成,核心理念是将网页的结构,样式和行为分离,所以分为三大部分:结构标准,样式标准和行为标准.结构标准包括XML标准,XHTML标准,HTML标准:样式标准指CS ...
- PHP命名规范【转】
[转]谭博的个人网站 [类] 1.类名与类文件名采用驼峰式且首字母大写 2.类私有属性和私有方法名称以下划线开头 3.方法名使用驼峰式 [变量] 变量名使用小写字母加下划线 [函数] 函数名使用小 ...
- Codeforces 381 简要题解
做的太糟糕了...第一题看成两人都取最优策略,写了个n^2的dp,还好pre-test良心(感觉TC和CF的pretest还是很靠谱的),让我反复过不去,仔细看题原来是取两边最大的啊!!!前30分钟就 ...
- 现代C++作业2 与 围棋homework-06
本文第一部分是现代C++作业2,第二部分是对围棋程序的部分建议,还有一些修改和优化体现在Github里面的代码中. 首先是现代C++作业. 1. 了解Lambda的用法.计算“Hello World! ...
- AutoCAD.NET二次开发:扩展数据之XData
结果缓存——ResultBuffer 结果缓存即 Autodesk.AutoCAD.DatabaseServices.ResultBuffer 类型,使用 ResultBuffer 对象时需要提供一个 ...
- javascript中数组的迭代等操作
- python 循环
200 ? "200px" : this.width)!important;} --> 介绍 python中有两种循环,分别是for...in循环.while循环:for.. ...
- [JS 基础] touchEvent中的changedTouches,targetTouches和touches的区别
对于移动端开发中 touchEvent(触摸事件) 中changedTouches,targetTouches和touches的区别往往不容易弄清,故特意查询了 MDN相关资料 1. 其中,对 cha ...
- mysql 报错之创建自定义函数
I experienced this error while trying to alter one of my stored procedures remotely on a master serv ...