目 錄 操 作
開啟目錄 ===》遍歷目錄 ===》切換目錄 ===》關閉目錄
opendir() ===>readdir()/chdir() ====>closedir()
標頭檔案:
#include
#include
#include
原型:dir *opendir(const char *name);
功能: 從指定的name路徑+目錄名下開啟該目錄
引數: name 要開啟的目錄所在路徑+目錄名稱
返回值:成功 目錄流物件,dir * 結構體指標
失敗 null
原型:struct dirent *readdir(dir *dirp);
功能:從已經開啟的目錄流物件drip中獲取乙個檔案資訊。
引數:dirp 已經開啟的流物件
返回值: 成功 返回乙個文 件結構體,重點是d_name 成員變數,表示檔名稱。
失敗或者目錄流結尾 null
原型:int chdir(const char *path);
功能:將程式的執行目錄修改為指定的path路徑
引數:path 新的工作目錄
返回值:成功 0
失敗 -1
原型:int closedir(dir *dirp);
功能:關閉指定的目錄流物件
引數:dirp 要關閉的流物件
返回值: 成功 0
失敗 -1;
注意:closedir 不能關閉多次,否則段錯誤。
2、檔案屬性操作 ===>stat 命令對應的 函式
標頭檔案#include
#include
#include
原型:int stat(const char *path, struct stat *buf);
功能:從指定的path路徑+檔名稱獲取檔案屬性資訊到buf物件中。
引數:path 要開啟的檔案路徑+名稱
buf 檔案屬性結構體
返回值:成功 0
失敗 -1;
注意:如果要獲取鏈結檔案的屬性資訊用 lstat函式
如果檔案已經被open函式開啟,可用fstat函式獲取其資訊。
檔案型別:
普通檔案 -
目錄檔案 d
鏈結檔案 l /dev/stdin
字元裝置檔案 c /dev/tty
塊裝置檔案 b /dev/sda
套接子檔案 s /dev/log
管道檔案 p
使用者資訊獲取:/etc/passwd =>id == name
1、getpwuid() ===>函式得到如下資訊:
標頭檔案: pwd.h
函式: getpwuid()
結構體: struct passwd *
2 使用者組資訊
struct group *getgrgid(gid_t gid);
檔案的大小:
buf.st_size
3、時間函式 ===> time() localtime() asctime()
標頭檔案:
#include
原型:time_t time(time_t *t);
功能:獲取當前系統時間與格林尼治時間之間的秒數。
引數:t 要獲取的時間結構體,如果是null 則表示預設當前時間。
如果是變數則在變數中儲存秒數。
返回值:如果引數是null ,則用該返回值表示獲取的秒數/
如果引數不是null,則一般用引數獲取秒數/
原型:struct tm *localtime(const time_t *timep);
功能:將指定的timep秒數的資料值轉換成struct tm 型別的時間結構體。
引數:timep 之前通過time函式或已知的時間秒數。
返回值:成功 時間結構體
失敗 null
原型:char *asctime(const struct tm *tm);
功能:將指定的時間結構體直接轉換成時間字串。
引數: tm 經過localtime 函式轉換的結構
返回值:成功 最終地時間結構體
失敗 null
練習: 綜合以上知識點,完成如下功能:
設計乙個程式,可以通過住函式傳參的方式列印輸出該檔案的
所有屬性資訊,如果該檔案是目錄則輸出目錄中包含的檔案屬性資訊。
比如:./a.out abc ===>普通檔案abc的屬性資訊輸出
./a.out ./ ===>當前目錄的所有檔案屬性資訊遍歷輸出。
4、io 總結
原始碼方式安裝軟體:
ctags 的使用:
1、進入系統目錄 cd /usr/include
2、生成tags檔案 ctags -r *
3、在當前目錄中追查變數或者結構體
vi -t ***
4、 如果定位的結果已經顯示的是基本資料型別,則表示追蹤截至。
如果第一次沒有定位到變數的基本資料型別,則用ctrl+] 向下追查
要求游標必須在要追查的型別的原始定義處。
如果要向後回退則用ctrl+t 回退一次。
5、用 :q 退出vi
高階程式設計之目錄(一)
目 錄 流 1.dir opendir const char name 功能 開啟乙個目錄獲得乙個目錄流指標 引數 name 檔名 返回值 成功目錄流指標 失敗返回null 2.struct dirent readdir dir dirp 功能 從目錄流中讀到乙個檔案的資訊 引數 dirp 目錄流指...
高階程式設計之程序(二)
進 程 1 程序的退出 return 只有在main函式中執行才能將程序退出。exit 程序退出函式,會自動重新整理快取區。exit 強制退出程序,不會重新整理快取區。2 特殊程序 2.1 孤兒程序 父程序退出,而子程序單獨存在。子程序變成孤兒程序。2.2 殭屍程序 父程序存在,子程序退出。父程序沒...
高階程式設計之檔案I O 二
函 數 接 口 1.time time t time time t t 功能 獲得1970年到現在所過的秒數 引數 t 要存放秒數空間的指標 返回值 成功返回所過的秒數 失敗返回 time t 1 2.localtime struct tm localtime const time t timep ...