title
date
br#description
c語言目錄操作補充
2019-11-05 06:39:36 -0800
目錄操作
c語言
本章節補充一些目錄和檔案操作的更多知識
access函式用於判斷當前作業系統使用者對檔案或目錄的訪問許可權。
// 包含標頭檔案:
#include // 函式宣告:
int access(const char *pathname, int mode);
#define r_ok 4 // r_ok 只判斷是否有讀許可權
#define w_ok 2 // w_ok 只判斷是否有寫許可權
#define x_ok 1 // x_ok 判斷是否有執行許可權
#define f_ok 0 // f_ok 只判斷是否存在
返回值: 當pathname滿足mode的條件時候返回0,不滿足返回-1。 在實際開發中,access函式主要用於判斷檔案或目錄是否是存在。
stat結構體
struct stat結構體用於存放檔案和目錄的狀態資訊,如下:
struct stat
;
struct stat結構體的成員變數比較多,對程式設計師來說,重點關注st_mode、st_size和st_mtime成員就可以了。注意st_mtime是乙個整數表達的時間,需要程式設計師自己寫**轉換格式。 st_mode成員的取值很多,或者使用如下兩個巨集來判斷。
s_isreg (st_mode) 是否為一般檔案
s_isdir (st_mode) 是否為目錄
stat庫函式
// 包含標頭檔案:
#include #include #include // 函式宣告:
int stat(const char *path, struct stat *buf);
stat函式獲取path指定檔案或目錄的資訊,並將資訊儲存到結構體buf中,執行成功返回0,失敗返回-1。
#include #include #include int main(int argc, char *ar**)
struct stat st_stat;
//獲取檔案狀態資訊
if(stat(ar**[1], &st_stat) == -1)
return -1;
if(s_isreg(st_stat.st_mode))
printf("%s是乙個檔案\n", ar**[1]);
if(s_isdir(st_stat.st_mode))
printf("%s是乙個目錄\n", ar**[1]);
printf("檔名%s\n型別%d\n最終修改時間%ld\n大小%ld\n" ,\
ar**[1], st_stat.st_mode, st_stat.st_mtime, st_stat.st_size);
return 0;
}
執行結果utime函式用於修改檔案的訪問時間和更改時間。
// 包含標頭檔案:
#include // 函式宣告:
int utime(const char *filename, const struct utimbuf *times);
函式說明:utime()用來修改引數filename 檔案所屬的inode 訪問時間。如果引數times為空指標(null), 則該檔案的訪問時間和更改時間全部會設為目前時間。結構utimbuf 定義如下:
struct utimbuf
;
返回值:執行成功則返回0,失敗返回-1。
rename函式用於重新命名檔案或目錄,相當於作業系統的mv命令,對程式設計師來說,在程式中極少重新命名目錄,但重新命名檔案是經常用到的功能。
// 包含標頭檔案:
#include // 函式宣告:
int rename(const char *oldpath, const char *newpath);
rename("/home/user/aaa.txt", "/home/user/aaa_new.txt");
引數說明: oldpath 檔案或目錄的原名。 newpath 檔案或目錄的新的名稱。 返回值:0-成功,-1-失敗。
remove函式用於刪除檔案或目錄,相當於作業系統的rm命令。
// 包含標頭檔案:
#include // 函式宣告:
int remove(const char *pathname);
引數說明: pathname 待刪除的檔案或目錄名。 返回值:0-成功,-1-失敗。 C語言目錄操作
1.在linux下要判斷乙個路徑是否是目錄,及遍歷這個路徑下的所有檔案,可以使用以下方式 主演使用的函式是 s isdir 判斷是否是目錄,傳入引數是stat.st mode dir opendir const char 開啟指定路徑 struct dirent readdir dir 開啟指定目錄...
C語言目錄操作
五 應用經驗 六 課後作業 目錄的操作不論是在嵌入式還是應用軟體程式設計都是必不可少的,不同的開發語言可能略有不同,本章節主要是討論在linux系統下目錄的一系列操作,以我的個人經驗,建立目錄和列出目錄中的檔案這兩個功能用得最多。在shell中我們可以直接輸入命令pwd來顯示當前的工作目錄,在c程式...
C語言目錄操作
五 應用經驗 六 課後作業 目錄的操作不論是在嵌入式還是應用軟體程式設計都是必不可少的,不同的開發語言可能略有不同,本章節主要是討論在linux系統下目錄的一系列操作,以我的個人經驗,建立目錄和列出目錄中的檔案這兩個功能用得最多。在shell中我們可以直接輸入命令pwd來顯示當前的工作目錄,在c程式...