日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux文件系统及属性

發(fā)布時間:2023/12/20 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux文件系统及属性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux文件系統(tǒng)及屬性


宗旨:技術(shù)的學習是有限的,分享的精神是無限的。


一、Linux系統(tǒng)下文件類型及屬性

1inode結(jié)構(gòu)

/*索引節(jié)點對象由inode結(jié)構(gòu)體表示,定義文件在linux/fs.h中*/ struct inode {struct hlist_node i_hash; /* 哈希表 */struct list_head i_list; /* 索引節(jié)點鏈表 */struct list_head i_dentry; /* 目錄項鏈表 */unsigned long i_ino; /* 節(jié)點號 */atomic_t i_count; /* 引用記數(shù) */umode_t i_mode; /* 訪問權(quán)限控制 */unsigned int i_nlink; /* 硬鏈接數(shù) */uid_t i_uid; /* 使用者id */gid_t i_gid; /* 使用者id組 */kdev_t i_rdev; /* 實設(shè)備標識符 */loff_t i_size; /* 以字節(jié)為單位的文件大小 */struct timespec i_atime; /* 最后訪問時間 */struct timespec i_mtime; /* 最后修改(modify)時間 */struct timespec i_ctime; /* 最后改變(change)時間 */unsigned int i_blkbits; /* 以位為單位的塊大小 */unsigned long i_blksize; /* 以字節(jié)為單位的塊大小 */unsigned long i_version; /* 版本號 */unsigned long i_blocks; /* 文件的塊數(shù) */unsigned short i_bytes; /* 使用的字節(jié)數(shù) */spinlock_t i_lock; /* 自旋鎖 */struct rw_semaphore i_alloc_sem; /* 索引節(jié)點信號量 */struct inode_operations *i_op; /* 索引節(jié)點操作表 */struct file_operations *i_fop; /* 默認的索引節(jié)點操作 */struct super_block *i_sb; /* 相關(guān)的超級塊 */struct file_lock *i_flock; /* 文件鎖鏈表 */struct address_space *i_mapping; /* 相關(guān)的地址映射 */struct address_space i_data; /* 設(shè)備地址映射 */struct dquot *i_dquot[MAXQUOTAS]; /* 節(jié)點的磁盤限額 */struct list_head i_devices; /* 塊設(shè)備鏈表 */struct pipe_inode_info *i_pipe; /* 管道信息 */struct block_device *i_bdev; /* 塊設(shè)備驅(qū)動 */unsigned long i_dnotify_mask; /* 目錄通知掩碼 */struct dnotify_struct *i_dnotify; /* 目錄通知 */unsigned long i_state; /* 狀態(tài)標志 */unsigned long dirtied_when; /* 首次修改時間 */unsigned int i_flags; /* 文件系統(tǒng)標志 */unsigned char i_sock; /* 可能是個套接字吧 */atomic_t i_writecount; /* 寫者記數(shù) */void *i_security; /* 安全模塊 */__u32 i_generation; /* 索引節(jié)點版本號 */union{void *generic_ip; /* 文件特殊信息 */} u; };<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">?</span>

2Linux文件類型(/usr/include/bits/stat.h

-:表示常規(guī)文件; ls –l /etc/exports

d:目錄文件 ? ? ? ? ? ?ls –ld /etc/rc.d

c:字符設(shè)備文件 ? ?ls –l /dev/null

b:塊設(shè)備文件 ? ? ? ?ls –l /dev/sda1

l:符號鏈接???????

s:套接字文件

p:管道文件? 【mknod pipe p??? ?ls–l pipe】

?

二、獲取文件屬性函數(shù)

1stat

?????? ——讀取任意類型文件屬性

(1)函數(shù)原型

#include<sys/types.h> #include<sys/stat.h> #include<unistd.h>int stat(const char *filename, struct stat buf);struct stat {dev_t st_dev; /* 設(shè)備號 */ino_t st_ino; /* inode值 */mode_t st_mode; /* 文件類型及權(quán)限 */nlink_t st_nlink; /* 硬連接數(shù) */uid_t st_uid; /* 用戶ID */gid_t st_gid; /* 用戶組ID */dev_t st_rdev; /* 設(shè)備號 */off_t st_size; /* 文件大小 */blksize_t st_blksize; /* 數(shù)據(jù)塊大小 */blkcnt_t st_blocks; /* 數(shù)據(jù)塊數(shù)量 */time_t st_atime; /* 最后一次訪問的時間 */time_t st_mtime; /* 最后一次修改的時間 */time_t st_ctime; /* 最后一次改變屬性時間 */ };

(2)函數(shù)參數(shù)

? ? ? ? filename:欲讀取狀態(tài)的文件(路徑字符串)

? ? ? ? buf:文件屬性臨時存放位置

(3)返回值

? ? ? ? 執(zhí)行成功,將在第二個參數(shù)中存儲該文件的基本信息,并返回0;出錯返回-1

?

2fstat

?????? ——讀取已打開的文件的狀態(tài)

(1) 函數(shù)原型

int fstat(int fd, structstat *buf);

(2)函數(shù)參數(shù)

? ? ? ? fd:如果第一個參數(shù)是符號鏈接文件,其讀取的屬性是源文件的屬性,因此要獲取鏈接文件的屬性,需要調(diào)用lstat函數(shù)。

? ? ? ? int lstat(const char *filename,struct stat *buf);

(3)返回值

? ? ? ? 執(zhí)行成功,將在第二個參數(shù)中存儲該文件的基本信息,并返回0;出錯返回-1

?

三、用戶名/組名與uid/gid的轉(zhuǎn)換

?????? 函數(shù)stat()返回的某文件屬性中,其擁有者所在的組以UID和GID值存在,在輸出某文件用戶屬性時有必要將其轉(zhuǎn)換為特定用戶名和組名。

getpwuid()/getpwnam()

——通過用戶UID或用戶名查看某特定用戶的基本信息

(1) 函數(shù)原型 —— 都是從/etc/passwd下讀取該用戶的基本信息

struct passwd *getpwuid(uid_t uid); struct passwd *getpwnam(const char *name);struct passwd {char *pw_name; // 用戶名char *pw_paawd; // 密碼uid_t pw_uid; //uidgid_t pw_gid; // gidchar *pw_gecos; // 注釋char *pw_dir; // 主目錄char *pw_shell; // 默認shell };

(2)函數(shù)參數(shù)

? ? ? ? uid:用戶uid

(3)返回值

? ? ? ? 成功返回struct passwd的結(jié)構(gòu)體?

總結(jié)

以上是生活随笔為你收集整理的Linux文件系统及属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。