Linux下目錄遍歷 結構體dirent

2022-05-27 02:27:09 字數 975 閱讀 9620

在linux下遍歷某一目錄下內容linux下歷遍目錄的方法一般是這樣的

開啟目錄->讀取->關閉目錄

相關函式是opendir -> readdir -> closedir,其原型如下:

#include

dir *opendir(const char *dirname);

struct dirent *readdir(dir *dirp);

int closedir(dir *dirp);

簡單列舉一例:

#include

struct

dirent

*ent

=null;

dir

*pdir;

if( (pdir

=opendir("/home/test"))

==null)

while

( (ent

=readdir(pdir))

!=null )

closedir(pdir);

其中有一很關鍵的結構體dirent:

**

on linux, the dirent structure 

isdefined

asfollows:

struct

dirent ;

其中inode表示存放的是該檔案的結點數目(具體可了解linux下的檔案系統),d_off 是檔案在目錄中的編移,這兩個基本很少用。

d_type表示檔案型別:

enum

;

d_reclen認為是紀錄的長度,計算方式應該是4(d_ino)+4(d_off)+2(d_reclen)+1(d_type)+1(補齊位)+4n(d_name會自動補齊:1.jpg為8,12.jpg也為8,1234.jpg也為8,12345.jpg則為12);所以一般d_reclen是20和24(其中.和..是16)。

d_name表示檔名,如test.jpg

linux下遍歷目錄和檔案

目錄操作相關函式 1 opendir 開啟目錄 dir opendir const char name 引數 要開啟的目錄名 返回值 指向目錄的指標 這裡的dir型別可以int dirfd dir dirp 函式轉變為描述符 fd 2 讀目錄 readdir struct dirent readdi...

Linux 系統 root下目錄結構

bin 用於存放普通使用者可執行的命令。boot 用於存放linux 啟動所必需的檔案,即我們建立的boot 分割槽的內容。dev 用於存放系統的裝置檔案。etc 用於存放系統的各種配置檔案。home 用於存放系統各個普通使用者的主目錄。lib 用於存放系統共享庫檔案。lost found 檔案系統...

linux下的檔案目錄結構

linux 的檔案系統是採用層級式的樹狀目錄結構,在此結構中的最上層是根目錄 然後在此目錄下再建立其他的目錄 root,存放root使用者的相關檔案 home,存放普通使用者的相關檔案 bin,存放常用命令的目錄,如vi,su sbin,要具有一定許可權才可以使用命令 mnt,預設掛載光碟機和軟碟機...