程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> linux下access函數的用法介紹

linux下access函數的用法介紹

編輯:C語言基礎知識

Linux內核總是根據進程的有效用戶ID和有效組ID來決定一個進程是否有權訪問某個文件。因此,在編寫調整用戶ID的程序時,在讀寫一個文件之前必須明確檢查其用戶是否原本就有對此文件的訪問權限。為了實現這種確認,需要使用access函數。

一般形式為;
#include<unistd.h>
int access(const char *pathname,int mode);

其中,pathname是希望檢驗的文件名(包含路徑),mode是欲檢查的訪問權限,如下所示

R_OK   檢驗調用進程是否有讀訪問權限
W_OK   檢驗調用進程是否有寫訪問權限
X_OK   檢驗調用進程是否有執行訪問權限
F_OK   檢驗規定的文件是否存在

access檢查用戶對一個文件的權限情況,根據mode的值檢查調用進程對文件pathname是否具有讀、寫、或執行的權限。若進程實際用戶具有mode所指出的權限,access返回0.否則返回-1.

例如:
access("test",06);
access("test",F_OK);
分別用來檢查實際用戶對test文件是否具有讀寫權限和test文件是否存在。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved