Linux c 目錄操作函式scandir

2021-06-02 00:40:42 字數 604 閱讀 8597

#include

int scandir( const char *dir,

struct dirent **namelist,

int (*filter) (const void *b),

int ( * compare )( const struct dirent **, const struct dirent ** ) );

int alphasort(const void *a, const void *b);

int versionsort(const void *a, const void *b);

函式scandir掃瞄dir目錄下以及dir子目錄下滿足filter過濾模式的檔案,返回的結果是compare函式經過排序的,並儲存在namelist中。注意namelist是通過malloc動態分配記憶體的,所以在使用時要注意釋放記憶體。alphasort和versionsort是使用到的兩種排序的函式。

當函式成功執行時返回找到匹配模式檔案的個數,如果失敗將返回-1。

eg:

#include

int main()

else

free(namelist); } }

Linux c目錄操作函式scandir

strdup,strndup,scandir等內部呼叫了malloc,需要手動釋放記憶體。標頭檔案 include 函式定義 int scandir const char dir,struct dirent namelist,int filter const void b int compare c...

Linux c 目錄操作函式scandir

標頭檔案 include 函式定義 int scandir const char dir,struct dirent namelist,int filter const void b int compare const struct dirent const struct dirent int al...

Linux C 中的目錄操作

linux的目錄操作一般流程為 開啟目錄 讀取目錄 中的檔案 關閉目錄。相應的函式為opendir readdir closedir,其原型都在 usr include dirent.h中定義。原型 include dir opendir const char dirname struct dire...