文件操作相关的系统函数
重點學(xué)習(xí):stat(fstat、lstat 獲取文件屬性)、access(測試指定文件是否擁有某種權(quán)限)、chmod(改變文件的權(quán)限)、chown(改變文件的所屬主和所屬組)、truncate(截斷或拓展文件)、link(創(chuàng)建硬鏈接)、symlink(創(chuàng)建軟鏈接)、readlink(讀軟鏈接對應(yīng)的文件名,即軟鏈接本身的內(nèi)容,文件路徑)、unlink(刪除符號鏈接、硬鏈接數(shù)減1、臨時文件關(guān)閉時自刪除)、rename(文件重命名,注意該函數(shù)是C庫函數(shù),不是系統(tǒng)函數(shù))。
stat 命令:用于獲取文件的屬性
[root@localhost work]# stat english.txt
? File: ‘english.txt’
? Size: 109055(文件大小)??? ????? Blocks: 216(占據(jù)的塊數(shù),每塊為512字節(jié))??????? IO Block: 1024(文件系統(tǒng)的I/O緩沖區(qū)大小)?? regular file(普通文件)
Device: 24h/36d(如果是設(shè)備文件,則為設(shè)備編號) ?? Inode: 3940649674713195(索引結(jié)點編號)? ?Links: 1(硬鏈接數(shù))
Access: (0777/-rwxrwxrwx)? Uid: (??? 0/??? root) 用戶 Gid: (??? 0/??? root)? 用戶組
Context: system_u:object_r:vmblock_t:s0
Access: 2019-03-19 10:30:07.145166300 +0800(訪問時間)
Modify: 2019-03-19 10:30:07.155166900 +0800(修改,內(nèi)容的修改)
Change: 2019-03-19 10:30:07.155166900 +0800(更改,文件屬性)
?Birth: -???????????????????????????????? (文件創(chuàng)建時間)
訪問和修改時間變了,更改時間也一定變化,因為訪問和修改時間也是文件的屬性。
[root@localhost work]# ll english.txt
-rwxrwxrwx. 1 root root 109055 Mar 19 10:30 english.txt? //四大權(quán)限,普通 特殊? 隱藏? ACL
索引結(jié)點inode。inode號是唯一的,表示不同的文件。其實在Linux內(nèi)部的時候,訪問文件都是通過inode號來進行的,所謂文件名(可以理解為簡化后的FCB,只有文件名和執(zhí)行inode的指針)僅僅是給用戶容易使用的。當我們打開一個文件的時候,首先,系統(tǒng)找到這個文件名對應(yīng)的inode號;然后,通過inode號,得到inode信息,最后,由inode找到文件數(shù)據(jù)所在的block,現(xiàn)在可以處理文件數(shù)據(jù)了。獲取文件屬性是從inode索引結(jié)點中獲取的。
inode和文件的關(guān)系:當創(chuàng)建一個文件的時候,就給文件分配了一個inode。一個inode只對應(yīng)一個實際文件,一個文件也會只有一個inode。inode最大數(shù)量就是文件的最大數(shù)量。而硬鏈接數(shù)量,則是一個文件對應(yīng)的簡化FCB的數(shù)量。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的文件操作相关的系统函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lseek函数的使用
- 下一篇: 目录操作相关的系统函数