在Linux系統中,readdir()
函數用于讀取目錄中的條目。它通常與opendir()
和closedir()
一起使用。readdir()
函數的返回值是一個指向dirent
結構的指針,該結構包含有關目錄條目的信息。
以下是readdir()
函數的基本用法:
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir("your_directory_path");
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
readdir()
函數的返回值是一個指向dirent
結構的指針。如果遇到錯誤或到達目錄末尾,它將返回NULL。dirent
結構包含以下字段:
d_ino
: 文件的inode號d_off
: 目錄項在目錄文件中的偏移量d_reclen
: 目錄項的長度d_name
: 文件名(以null結尾的字符串)要解析readdir()
的返回值,您可以檢查返回的指針是否為NULL,并使用dirent
結構中的字段獲取所需的信息。例如,要獲取目錄條目的文件名,您可以使用entry->d_name
。
以下是一個簡單的示例,演示如何解析readdir()
的返回值并打印目錄中的所有文件名:
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir("your_directory_path");
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
printf("File name: %s\n", entry->d_name);
}
closedir(dir);
return 0;
}
請注意,您需要將your_directory_path
替換為您要讀取的實際目錄路徑。