C++中的_access函數(轉載)

該函數主要用於文件讀取方面——判斷文件是否存在,並判斷文件是否可寫。Linux下,該函數爲access,位於頭文件<unistd.h>中,而在標準C++中,該函數爲_access,位於頭文件<io.h>中,兩者的使用方法基本相同,只是在一些參數方面可能會有一些不同的宏定義。下面是標準C++爲例做一下總結:

頭文件:<io.h>

函數原型:int _access(const char *pathname, int mode);

參數:pathname 爲文件路徑或目錄路徑 mode 爲訪問權限(在不同系統中可能用不能的宏定義重新定義)

返回值:如果文件具有指定的訪問權限,則函數返回0;如果文件不存在或者不能訪問指定的權限,則返回-1.

備註:當pathname爲文件時,_access函數判斷文件是否存在,並判斷文件是否可以用mode值指定的模式進行訪問。當pathname爲目錄時,_access只判斷指定目錄是否存在,在Windows NT和Windows 2000中,所有的目錄都只有讀寫權限。

mode的值和含義如下所示:

00——只檢查文件是否存在

02——寫權限

04——讀權限

06——讀寫權限

對應的還有_access的寬字符版本,用法相同。

例子:

C++

#include <io.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    if ((_access(“IsExist.txt”, 0)) != -1)
    {
        printf(“File IsExist.txt exists.\n”);
 
        if ((_access(“IsExist.txt”, 2)) != -1)
            printf(“File IsExist.txt does not have write permission.\n”);
    }
 
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章