1、檢查檔案是否存在
access:按照實際使用者id和實際組進行訪問許可權測試
#include int access(const char* pathname, int mode);
pathname:檔案路徑
mode:
返回:0表示不存在
2、檢查目錄是否存在
opendir:開啟檔案目錄,成功返回指標,否則返回null
if (opendir(dir_path) == null)
printf("dir not exist!\n");
else
printf("dir exist!\n");
3、stat系列函式
標頭檔案:#include #include
函式定義: int stat(const char* file_name, struct stat* buf);
函式說明:通過檔名file_name獲取檔案資訊,並儲存在buf指向的結構體stat中
返回值:成功返回0,失敗返回-1,錯誤**儲存在errno
錯誤**:
struct stat ;
st_mode:
s_ifmt 0170000 檔案型別的位遮罩
s_ifsock 0140000 scoket
s_iflnk 0120000 符號連線
s_ifreg 0100000 一般檔案
s_ifblk 0060000 區塊裝置
s_ifdir 0040000 目錄
s_ifchr 0020000 字元裝置
s_ififo 0010000 先進先出
s_isuid 04000 檔案的(set user-id on execution)位
s_isgid 02000 檔案的(set group-id on execution)位
s_isvtx 01000 檔案的sticky位
s_irusr(s_iread) 00400 檔案所有者具可讀取許可權
s_iwusr(s_iwrite)00200 檔案所有者具可寫入許可權
s_ixusr(s_iexec) 00100 檔案所有者具可執行許可權
s_irgrp 00040 使用者組具可讀取許可權
s_iwgrp 00020 使用者組具可寫入許可權
s_ixgrp 00010 使用者組具可執行許可權
s_iroth 00004 其他使用者具可讀取許可權
s_iwoth 00002 其他使用者具可寫入許可權
s_ixoth 00001 其他使用者具可執行許可權
參考:
linux c檔案相關操作
1,操作檔案,需要檔案控制代碼 標頭檔案 include 若用fgets函式讀取檔案內容,需要注意fgets函式的使用。函式宣告 char fgets char str,int n,file stream 引數 str 這是指向乙個字元陣列的指標,該陣列儲存了要讀取的字串。n 這是要讀取的最大字元數...
Linux C 檔案操作
系統呼叫比標準庫移植性差 不同os介面不一定一致 系統呼叫會進入核心態,對程式執行的開銷較大.預設檔案描述符 0 標準輸入 1 標準輸出 2 標準錯誤輸出 include include include include include define maxline 80 void if error ...
Linux C 檔案操作
linux 檔案操作 1 linux檔案操作 1.1 系統呼叫 系統呼叫發生核心空間,因此如果在使用者空間的一般應用程式中使用系統呼叫來進行檔案操作,會有使用者空間到核心空間的開銷。但通過系統呼叫來訪問檔案是最直接的方式,系統呼叫函式直接作用於作業系統核心的裝置驅動程式從而實現檔案訪問。檔案描述符f...