readdir
是一個在 Linux 系統中用于讀取目錄內容的函數。它是 POSIX 標準的一部分,通常在 C 語言編程中使用。readdir
函數的作用是從一個打開的目錄流中讀取下一個目錄項。
函數原型如下:
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
參數說明:
dirp
:指向一個 DIR
類型的指針,該指針是通過 opendir
函數打開目錄后獲得的。返回值:
dirent
結構體的指針,該結構體包含了目錄項的信息,如文件名、inode 號等。NULL
。NULL
并設置全局變量 errno
以指示錯誤類型。dirent
結構體通常包含以下成員:
d_ino
:目錄項的 inode 號。d_off
:目錄項在目錄文件中的偏移量。d_reclen
:目錄項的長度。d_name
:目錄項的名稱。使用 readdir
函數時,通常會在一個循環中調用它,直到返回 NULL
,這樣可以遍歷目錄中的所有條目。例如:
#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
這個示例程序會打開當前目錄(.
),然后使用 readdir
函數讀取并打印目錄中的所有文件和子目錄的名稱。最后,使用 closedir
函數關閉目錄流。