在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其中inode表示存放的是該檔案的結點數目(具體可了解linux下的檔案系統),d_off 是檔案在目錄中的編移,這兩個基本很少用。isdefined
asfollows:
struct
dirent ;
d_type表示檔案型別:
enumd_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,預設掛載光碟機和軟碟機...