readdir
是一個用于讀取目錄內容的函數,通常在 C 語言中使用。為了更好地理解如何結合其他函數使用 readdir
,我們可以看一個簡單的示例,這個示例將展示如何遍歷一個目錄并打印出其中的所有文件和子目錄。
首先,確保包含了必要的頭文件:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
接下來,編寫一個函數來處理目錄中的每個條目:
void process_directory_entry(struct dirent *entry) {
printf("Entry name: %s\n", entry->d_name);
}
現在,編寫一個函數來遍歷目錄并調用 process_directory_entry
函數處理每個條目:
void traverse_directory(const char *path) {
DIR *dir = opendir(path); // 打開目錄
if (dir == NULL) {
perror("opendir");
return;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) { // 遍歷目錄中的每個條目
process_directory_entry(entry); // 處理條目
}
closedir(dir); // 關閉目錄
}
最后,在 main
函數中調用 traverse_directory
函數:
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <directory_path>\n", argv[0]);
return EXIT_FAILURE;
}
traverse_directory(argv[1]);
return EXIT_SUCCESS;
}
編譯并運行這個程序,傳入一個目錄路徑作為參數,它將打印出該目錄中的所有文件和子目錄。
這個示例展示了如何結合 opendir
、readdir
和 closedir
函數來遍歷目錄。你可以根據需要修改 process_directory_entry
函數來實現自己的邏輯,例如檢查文件類型、獲取文件屬性等。