【轉】C語言中access函數


頭文件: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 只判斷是否存在
access函數程序范例(C語言中)
/*int access(const char *pathname, int mode);
此函數用於檢測某個指定路徑的文件(第一個參數 pathname),是否符合第二個參數選項(F_OK(是否是存在的文件),R_OK(是否可讀),W_OK(是否可以寫入),X_OK(是否可以運行);當參數1滿足參數2條件時候返回0,不滿足返回-1;(此處剛剛好和字符串比對返回值類似)*/
//參考代碼如下:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
char * myboolean(int p);
int main(int argc,char **argv)
{
int a,b,c,d;
a=access(argv[1],F_OK);
b=access(argv[1],R_OK);
c=access(argv[1],W_OK);
d=access(argv[1],X_OK);
printf("存在?%s,可讀?%s,可寫?%s,可運行?%s\n",myboolean(a),myboolean(b),myboolean(c),myboolean(d));
exit(0);
}
char * myboolean(int p)/*此函數為了方便結果而定義的布爾運算*/
{
char *f =NULL;
if(p<0)
return f="";
if(p==0)
return f="";
}
/***********************************************************************************************/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM