UNIX--stat、fstat和lstat函數

stat、fstat和lstat函數(UNIX) #include #include int stat(const char *restrict pathname, struct stat *restrict buf); 供給文件姓名,獲取文件對應特色。感覺一般是文件沒有翻開的時分這樣操做。 int fstat(int filedes, struc http://www.goodk123.info/linked/20130312.do t stat *buf); 通過文件描繪符獲取文件對應的特色。文件翻開後這樣操做 int lstat(const char *restrict pathname, struct stat *restrict buf); 銜接文件 三個函數的回來:若成功則爲0,若犯錯則爲-1 給定一個pathname,stat函數回來一個與此命名文件有關的信息佈局,fstat函數取得已在描繪符filedes上翻開的文件的有關信息。lstat函數相似於stat,但是當命名的文件是一個符號銜接時,lstat回來該符號銜接的有關信息,而不是由該符號銜接引證的文件的信息。 第二個參數是個指針,它指向一個我們應供給的佈局。這些函數填寫由buf指向的佈局。該佈局的實踐界說可以隨完成而有所不一樣,但其基本形式是: 函數都是獲取文件(通常文件,目錄,管道,socket,字符,塊()的特色。 函數原型 #include  int stat(const char *restrict pathname, struct stat *restrict buf); 供給文件姓名,獲取文件對應特色。 int fstat(int filedes, struct stat *buf); 通過文件描繪符獲取文件對應的特色。 int lstat(const char *restrict pathname, struct stat *restrict buf); 銜接文件描繪命,獲取文件特色。 2 文件對應的特色 struct stat {         mode_t     st_mode;       //文件對應的形式,文件,目錄等         ino_t      st_ino;       //inode節點號         dev_t      st_dev;        //設備號碼         dev_t      st_rdev;       //特別設備號碼         nlink_t    st_nlink;      //文件的銜接數         uid_t      st_uid;        //文件全部者         gid_t      st_gid;        //文件全部者對應的組         off_t      st_size;       //通常文件,對應的文件字節數         time_t     st_atime;      //文件最終被拜訪的時刻         time_t     st_mtime;      //文件內容最終被修正的時刻         time_t     st_ctime;      //文件情況改動時刻         blksize_t st_blksize;    //文件內容對應的塊鉅細         blkcnt_t   st_blocks;     //偉建內容對應的塊數量       }; 可以通過上面供給的函數,回來一個佈局體,保存着文件的信息。 stat函數解說 表頭文件:    #include               #include  界說函數:    int stat(const char *file_name, struct stat *buf); 函數闡明:    通過文件名filename獲取文件信息,並保存在buf所指的佈局體stat中 回來值:      履行成功則回來0,失利回來-1,錯誤代碼存於errno 錯誤代碼:     ENOENT         參數file_name指定的文件不存在     ENOTDIR        途徑中的目錄存在但卻非真實的目錄     ELOOP          欲翻開的文件有過多符號銜接疑問,上限爲16符號銜接     EFAULT         參數buf爲無效指針,指向沒法存在的內存空間     EACCESS        存取文件時被回絕     ENOMEM         中心內存不足     ENAMETOOLONG   參數file_name的途徑稱號太長 #include 
#include 
#include 

int main() {
    struct stat buf;
    stat("/etc/hosts",  http://www.haofapiao.com/linked/20130312.do
相關文章
相關標籤/搜索