2021-2022-1-diocs-stat命令的實現-mystat
阿新 • • 發佈:2021-11-02
stat命令的實現-mystat
stat(1)學習
man 1 stat
檢視stat幫助文件
觀察SEE ALSO有關內容,猜測stat使用系統呼叫
功能
stat命令主要用於顯示檔案或檔案系統的詳細資訊,相比ls命令而言,stat還可以看到裝置號,環境等資訊。
格式
stat [option] file or dir
常用選項
其中-c
選項可使用如下引數
%a 八進位制表示的訪問許可權 %A 可讀格式表示的訪問許可權 %b 分配的塊數(參見 %B) %B %b 引數顯示的每個塊的位元組數 %d 十進位制表示的裝置號 %D 十六進位制表示的裝置號 %f 十六進位制表示的 Raw 模式 %F 檔案型別 %g 屬主的組 ID %G 屬主的組名 %h 硬連線數 %i Inode 號 %n 檔名 %N 如果是符號連結,顯示器所連結的檔名 %o I/O 塊大小 %s 全部佔用的位元組大小 %t 十六進位制的主裝置號 %T 十六進位制的副裝置號 %u 屬主的使用者 ID %U 屬主的使用者名稱 %x 最後訪問時間 %X 最後訪問時間,自 Epoch 開始的秒數 %y 最後修改時間 %Y 最後修改時間,自 Epoch 開始的秒數 %z 最後改變時間 %Z 最後改變時間,自 Epoch 開始的秒數 針對檔案系統還有如下格式選項: %a 普通使用者可用的塊數 %b 檔案系統的全部資料塊數 %c 檔案系統的全部檔案節點數 %d 檔案系統的可用檔案節點數 %f 檔案系統的可用節點數 %C SELinux 的安全上下文 %i 十六進位制表示的檔案系統 ID %l 檔名的最大長度 %n 檔案系統的檔名 %s 塊大小(用於更快的傳輸) %S 基本塊大小(用於塊計數) %t 十六進位制表示的檔案系統型別 %T 可讀格式表示的檔案系統型別
man -k和grep -r查詢stat有關函式
man -k stat | grep 2
在man手冊中第二節查詢包含的內容
使用man -k stat | grep -nr include
指令
使用man 2 stat
查詢stat函式呼叫有關內容
找到包含stat有關的標頭檔案
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
結構體
返回值
SEE ALSO
stat虛擬碼
判斷輸入中是否包含檔案引數,如果有則繼續,沒有則提示使用者輸入錯誤
宣告結構體,呼叫函式stat();
列印輸出
{
節點ino;
檔案型別mode;
檔案的連線數nlink
使用者ID uid和組ID gid;
塊大小blksize;
位元組數size;
塊數目blocks;
三個時間atime、mtime和ctime
}
產品程式碼 mystate.c
程式碼已上傳至碼雲我的倉庫
測試程式碼
建立test.txt測試檔案,先用stat進行測試
再使用mystat,二者對比