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