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——只檢查文件是否存在Existence only
02——寫權限Write-only
04——讀權限Read-only
06——讀寫權限Read and write