#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...