C語言目錄操作補充

2021-10-05 14:43:16 字數 2620 閱讀 3409

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程式...