在 Linux 系統中,opendir() 函數的功能是開啟一個目錄流,從而能夠利用其他關聯函數(例如 readdir() 和 closedir())來獲取目錄里的具體內容。下面是如何應用 opendir() 函數讀取目錄信息的主要步驟:
-
引入必需的頭文件:
#include <dirent.h> #include <stdio.h> #include <stdlib.h></stdlib.h></stdio.h></dirent.h>
-
啟動目錄: 利用 opendir() 函數開啟一個目錄流。此函數接收一個目錄路徑作為輸入參數,并返回一個指向 DIR 數據類型的指針。若無法開啟目錄,則返回 NULL。
-
提取目錄詳情: 運用 readdir() 函數從目錄流中提取目錄條目。每一次調用 readdir() 都會返回一個指向 struct dirent 的指針,該結構保存著關于目錄條目的相關信息。
Struct dirent *entry; while ((entry = readdir(dir)) != NULL) { printf("%sn", entry->d_name); }
-
結束目錄: 使用 closedir() 函數關閉目錄流。
closedir(dir);
以下是一段完整的代碼示例,展示如何運用 opendir() 和 readdir() 來讀取目錄內的所有文件與子目錄:
#include <dirent.h> #include <stdio.h> #include <stdlib.h> int main() { DIR *dir; struct dirent *entry; // 啟動目錄 dir = opendir("/path/to/directory"); if (dir == NULL) { perror("opendir"); exit(EXIT_FAILURE); } // 提取目錄內容 while ((entry = readdir(dir)) != NULL) { printf("%sn", entry->d_name); } // 結束目錄 closedir(dir); return 0; } </stdlib.h></stdio.h></dirent.h>
請將 /path/to/directory 替換為實際需要讀取的目錄路徑。編譯并執行這段代碼后,它將列出指定目錄內所有的文件和子目錄的名字。