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