1. 程式人生 > 其它 >stat命令的實現-mysate(必做)

stat命令的實現-mysate(必做)

作業要求

學習使用stat(1),並用C語言實現
1. 提交學習stat(1)的截圖
2. man -k ,grep -r的使用
3. 虛擬碼
4. 產品程式碼 mystate.c,提交碼雲連結
5. 測試程式碼,mystat 與stat(1)對比,提交截圖

過程

1. 提交學習stat(1)的截圖


使用stat命令:

2. man -k ,grep -r的使用

man -k 的使用

使用man -k stat | grep file查詢與stat(狀態)和file(檔案)相關的內容,找到了如下內容。

非常多的內容,其中,我們進一步瞭解名為stat的系統呼叫。

man 2 stat

檢視學習。

發現通過使用stat系統呼叫,會返回一個結構體,其中包含了我們需要輸出的資訊。按理說只要根據檔案路徑獲取到這個結構體,然後再進行格式化輸出就可以了。

grep -r 的使用

在編寫程式碼的過程中,會遇到很多不知道的型別和巨集定義,需要使用grep -r xx /usr/include
如:第二個需要輸出的,是檔案大小。

發現有一個變數:st_size不清楚其型別意義。使用grep -r st_size /usr/include查詢。

3. 虛擬碼

1.判斷輸入中是否包含檔案引數,如果有則繼續,沒有則提示使用者輸入錯誤
2.宣告結構體,並呼叫stat()函式給結構體賦值
3.逐個取出結構體中的資料並輸出即可
4.注意檔案的mode需要switch來判斷

4. 產品程式碼 mystate.c,提交碼雲連結

https://gitee.com/ye_jia_xing/system-programming/blob/master/week09/mystat/mystat.c

5. 測試程式碼,mystat 與stat(1)對比,提交截圖

———————————————————————————————————————————————————————————————— 轉載麻煩附上本文連結和本宣告,感謝! 博主<葉家星>部落格園連結如下:https://www.cnblogs.com/yejiaxing-01/