c語(yǔ)言中,opendir() 函數(shù)打開(kāi)目錄后,使用 readdir() 函數(shù)讀取目錄項(xiàng)。readdir() 返回 NULL 即表示已到達(dá)目錄末尾。
以下示例演示如何檢測(cè) opendir() 是否遍歷完成:
#include <stdio.h> #include <stdlib.h> #include <dirent.h> int main() { DIR *dir; struct dirent *entry; // 打開(kāi)當(dāng)前目錄 dir = opendir("."); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; } // 循環(huán)讀取目錄項(xiàng),直到到達(dá)末尾 while ((entry = readdir(dir)) != NULL) { printf("目錄項(xiàng): %s ", entry->d_name); } // 關(guān)閉目錄 closedir(dir); printf("目錄遍歷完成 "); // 添加提示信息,明確遍歷結(jié)束 return EXIT_SUCCESS; }
代碼首先使用 opendir() 打開(kāi)當(dāng)前目錄 (.)。然后,while 循環(huán)不斷調(diào)用 readdir() 讀取目錄項(xiàng),直到 readdir() 返回 NULL,表示遍歷結(jié)束。最后,closedir() 關(guān)閉目錄,并打印提示信息確認(rèn)遍歷完成。 錯(cuò)誤處理也包含在內(nèi),確保程序在 opendir() 失敗時(shí)能正確處理。