頭檔案:unistd.h
功 能: 確定檔案或資料夾的訪問許可權。即,檢查某個檔案的存取方式,比如說是唯讀方式、只寫方式等。如果指定的存取方式有效,則函式返回0,否則函式返回-1。
用 法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );
參數說明:
filenpath
檔案或資料夾的路徑,當前目錄直接使用檔案或資料夾名
備註:當該參數為檔案的時候,access函式能使用mode參數所有的值,當該參數為資料夾的時候,access函式值能判斷資料夾是否存在。在WIN NT 中,所有的資料夾都有讀和寫許可權
mode
要判斷的模式
在頭檔案unistd.h中的預定義如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具體含義如下:
R_OK 只判斷是否有讀許可權
W_OK 只判斷是否有寫許可權
X_OK 判斷是否有執行許可權
F_OK 只判斷是否存在
在宏定義裡面分別對應:
00 只存在
02 寫許可權
04 讀許可權
06 讀和寫許可權
access函式程式範例(C語言中)
#include <stdio.h>
#include <unistd.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}