strdup,strndup,scandir等內部呼叫了malloc,需要手動釋放記憶體。
標頭檔案#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。
#include int main()
else
free(namelist);
} }
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 alphasort co...
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...