Linux c 目錄操作函式scandir

2021-09-22 22:19:09 字數 597 閱讀 2745

標頭檔案

#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目錄下(不包括子目錄)滿足filter過濾模式的檔案,返回的結果是compare函式經過排序的,並儲存在 namelist中。注意namelist是通過malloc動態分配記憶體的,所以在使用時要注意釋放記憶體。alphasort和versionsort 是使用到的兩種排序的函式。   

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

eg:#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

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

Linux C 中的目錄操作

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