在 CentOS 系統中,readdir
函數用于讀取目錄中的條目
DIR *dir = opendir(path);
if (dir == NULL) {
perror("opendir");
return -1;
}
這里,path
是要打開的目錄路徑。如果 opendir
函數失敗,它將返回 NULL
,并設置全局變量 errno
以指示錯誤原因。使用 perror
函數可以打印錯誤信息。
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 處理目錄條目
}
readdir
函數返回一個指向 dirent
結構的指針,該結構包含有關目錄條目的信息。如果讀取過程中發生錯誤,readdir
將返回 NULL
。但是,請注意,當到達目錄末尾時,readdir
也會返回 NULL
。因此,你需要檢查 errno
變量以確定是否發生了錯誤:
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 處理目錄條目
if (errno != 0) {
perror("readdir");
closedir(dir);
return -1;
}
}
int ret = closedir(dir);
if (ret == -1) {
perror("closedir");
return -1;
}
closedir
函數用于關閉已打開的目錄。如果關閉過程中發生錯誤,它將返回 -1
并設置 errno
。使用 perror
函數可以打印錯誤信息。
總之,在 CentOS 系統中使用 readdir
函數時,需要注意檢查返回值以及 errno
變量,以便正確處理可能出現的錯誤。