opendir 是一個用于打開目錄的函數,通常與 readdir 和 closedir 一起使用來遍歷目錄中的文件。以下是一個簡單的示例,展示了如何使用這些函數來讀取目錄中的文件:
#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\n", entry->d_name);
}
// 關閉目錄
closedir(dir);
return EXIT_SUCCESS;
}
包含頭文件:
#include <stdio.h>:用于標準輸入輸出函數。#include <stdlib.h>:用于標準庫函數,如 EXIT_FAILURE 和 EXIT_SUCCESS。#include <dirent.h>:用于目錄操作函數。打開目錄:
DIR *dir = opendir(".");:使用 opendir 函數打開當前目錄(.)。如果打開失敗,opendir 返回 NULL,并設置 errno。讀取目錄中的文件:
while 循環和 readdir 函數遍歷目錄中的每個條目。struct dirent *entry = readdir(dir);:每次調用 readdir 返回一個指向 dirent 結構的指針,該結構包含目錄條目的信息。readdir 返回 NULL,表示已經到達目錄的末尾。打印文件名:
printf("%s\n", entry->d_name);:打印目錄條目的名稱。關閉目錄:
closedir(dir);:使用 closedir 函數關閉目錄。dirent 結構中的 d_name 字段包含目錄條目的名稱。readdir 返回的 dirent 結構中的其他字段(如 d_type)可以提供更多關于文件類型的信息。opendir 的返回值,以處理可能的錯誤情況。這個示例展示了如何使用 opendir、readdir 和 closedir 函數來讀取目錄中的文件。你可以根據需要修改代碼來處理特定的目錄或文件類型。