linux雜記3

struct stat結構體
用於描述linux文件胸膛的文件屬性的結構體。
使用該結構體時,需要頭文件sys/types.h和sys/stat.h
通過兩種方式獲得屬性:
1、通過路徑:

int stat(const char *path,struct stat *struct_stat);
int lstat(const char *path,struct stat *struct_stat);

path參數表示路徑,
struct_stat表示文件屬性結構體指針;
成功返回0,
失敗,則返回值及含義如下
EBADF,文件描述詞無效;
EFAULT:地址空間不可訪問;
ELOOP:遍歷路徑時遇到太多符號鏈接;
ENAMETOOLONG:文件路徑名太長;
ENOENT:路徑名的部分組件不存在/路徑名是空字符串;
ENOMEM:內存不足;
ENOTDIR:路徑名的部分組件非目錄
stat和lstat的區別在於stat沒有處理字符鏈接(軟連接)的能力;
硬鏈接:在一個目錄下,將一個文件名和一個inode關聯起來,就是添加一個硬鏈接;
軟鏈接:也叫符號鏈接,文件內容就是一個字符串,字符串內容就是它所鏈接的文件的絕對或者相對路徑。

2、通過文件描述符

int fstat(int fdp,struct stat *struct_stat)

通過文件描述符獲取文件對應的 屬性,fdp爲文件描述符;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章