先把這個函式的用法記下來,說不定爾后還會再用到。
功能說明:判斷是否具有存取檔案的權限。
標頭檔:#include <unistd.h>
函式宣告:int access(const char *pathname, int mode);
函式說明:access()會檢查是否可以讀寫某一已存在的檔案。引數mode有幾種情況的組合:R_OK, W_OK, X_OK和F_OK;R_OK, W_OK和X_OK用來檢查檔案是否具有讀取、寫入和執行的權限。F_OK則是用來判斷該檔是否存在;由於access()只做權限的查核,並不理會檔案型態或是檔案內容。
回傳值:若所有欲查核的權限都通過了檢查則傳回0,表示成功;只要有一權限被禁止 (Denied)則傳回-1。
範例:
#include <unistd.h> #include <stdio.h> int main() int argc; char *argv[]; char **envp[]; { if (access("/root/TEST.TXT", R_OK) == 0) fprintf(stdout, "Allow!! \n"); else fprintf(stderr, "Deny!! \n"); return 0; }附加說明:使用access()做使用者認證方面的判斷要特別小心,例如在access()之後再做open()的空檔可能會造成系統安全上的問題。
沒有留言:
張貼留言