char *getcwd(
char *buffer,
int maxlen
);
獲取當(dāng)前工作目錄,將當(dāng)前目錄的絕對路徑復(fù)制到buffer中,maxlen為buffer的空間大小。
include <sys/stat.h>
include <unistd.h>
int stat(
const char *file,//文件名
struct stat *buf//保存file信息的結(jié)構(gòu)體
);
struct stat{
dev_t st_dev;//文件的設(shè)備編號
ino_t st_ino;//節(jié)點
mode_t st_mode;//文件類型的存儲權(quán)限
nlink_t st_nlink;//鏈接到該文件的硬鏈接數(shù)目,剛建立的文件為1
uid_t st_uid;//用戶ID
gid_t st_gid;//組ID
dev_t st_rdev;//(設(shè)備類型)若此文件為設(shè)備文件,則為其設(shè)備編號
off_t st_size;//文件字節(jié)數(shù)
unsigend long st_blksize;//塊大小(文件系統(tǒng)的IO緩存區(qū)大?。? unsigend long st_blocks;//塊數(shù)
time_t st_atime;//最后一次訪問時間
time_t st_mtime;//最后一次修改時間
time_t st_ctime;//最后一次改變時間
};
函數(shù)說明:通過文件名獲取文件信息,并保存在buf指向的結(jié)構(gòu)體中
執(zhí)行成功返回0,失敗返回-1
| 錯誤代碼 | 含義 |
|---|---|
| ENOENT | filename指定的文件不存在 |
| ENOTDIR | 路徑中的目錄存在,但非真正的目錄 |
| ELOOP | 準(zhǔn)備打開的文件有過多的符號鏈接問題,符號鏈接上限為16 |
| EFALUT | buf為無效指針 |
| EACCESS | 存取文件時被拒絕 |
| ENOMEM | 核心內(nèi)存不足 |
| ENAMETOOLONG | filename的路徑名稱太長 |
參考:https://www.cnblogs.com/hnrainll/archive/2011/05/11/2043361.html
include <unistd.h>
int access(
const char *pathname; //要測試的文件,路徑+文件名
int mode //指定要測試哪種權(quán)限
);
//測試文件權(quán)限
| mode的值 | 含義 |
|---|---|
| F_OK 或0 | 判斷文件是否存在 |
| R_OK 或4 | 判斷對文件是否有讀權(quán)限 |
| W_OK或2 | 判斷對文件是否有寫權(quán)限 |
| X_OK或1 | 判斷對文件是否有讀寫權(quán)限 |