readdir 函數是用于讀取目錄內容的函數,在 CentOS 系統中,它同樣適用。以下是 readdir 函數的使用指南:
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
dirp:指向 DIR 類型的指針,該指針通過 opendir 函數打開目錄后獲得。dirent 結構體的指針,該結構體包含目錄中的一個條目信息。NULL。dirent 結構體dirent 結構體定義如下:
struct dirent {
ino_t d_ino; /* Inode number */
off_t d_off; /* Not used by Linux */
unsigned short d_reclen; /* Length of this record */
unsigned char d_type; /* Type of file */
char d_name[]; /* Null-terminated filename */
};
d_ino:文件的 inode 號。d_off:目錄條目的偏移量(在 Linux 中未使用)。d_reclen:目錄條目的長度。d_type:文件類型(例如,DT_REG 表示常規文件,DT_DIR 表示目錄)。d_name:文件名。以下是一個簡單的示例,展示如何使用 readdir 函數讀取目錄內容:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.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 函數時,務必檢查其返回值是否為 NULL,以處理可能的錯誤情況。readdir 函數返回的 dirent 結構體是由內核分配的,不需要手動釋放內存。通過以上指南,你應該能夠在 CentOS 系統中使用 readdir 函數來讀取目錄內容。