日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 默认站点!

默认站点

當(dāng)前位置: 首頁(yè) >

fstat、stat和lstat 区别

發(fā)布時(shí)間:2023/11/30 36 豆豆
默认站点 收集整理的這篇文章主要介紹了 fstat、stat和lstat 区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

nt?fstat(int?filedes,?struct?stat?*buf);

int?stat(const?char?*path,?struct?stat?*buf);

int?lstat(const?char?*path,?struct?stat?*buf);

一眼就能看出來(lái)fstat的第一個(gè)參數(shù)是和另外兩個(gè)不一樣的,fstat區(qū)別于另外兩個(gè)系統(tǒng)調(diào)用的地方在于,fstat系統(tǒng)調(diào)用接受的是?一個(gè)“文件描述符”,而另外兩個(gè)則直接接受“

文件全路徑”。文件描述符是需要我們用open系統(tǒng)調(diào)用后才能得到的,而文件全路經(jīng)直接寫就可以了。

stat和lstat的區(qū)別:當(dāng)文件是一個(gè)符號(hào)鏈接時(shí),lstat返回的是該符號(hào)鏈接本身的信息;而stat返回的是該鏈接指向的文件的信息。(這樣記,lstat比stat多了一個(gè)l,因此它是

有本事處理符號(hào)鏈接文件的,因此當(dāng)遇到符號(hào)鏈接文件時(shí),lstat當(dāng)然不會(huì)放過(guò)。而?stat系統(tǒng)調(diào)用沒(méi)有這個(gè)本事,它只能對(duì)符號(hào)鏈接文件睜一只眼閉一只眼,直接去處理鏈接所指

文件嘍)?

  • /*?
  • ?*?Linux文件屬性結(jié)構(gòu)體信息?
  • ?*?struct?stat?
  • ?*?{?
  • ?*??dev_t?st_dev;//設(shè)備?
  • ?*??ino_t?st_ino;//結(jié)點(diǎn)?
  • ?*??mode_t?st_mode;//模式?
  • ?*??nlink_t?st_nlink;//硬連接?
  • ?*??uid_t?st_uid;//用戶ID?
  • ?*??gid_t?st_gid;//組ID?
  • ?*??dev_t?st_rdev;//設(shè)備類型?
  • ?*??off_t?st_off;//文件字節(jié)數(shù)?
  • ?*??unsigned?long?st_blksize;//塊大小?
  • ?*??unsigned?long?st_blocks;//塊數(shù)?
  • ?*??time_t?st_atime;//最后一次訪問(wèn)時(shí)間?
  • ?*??time_t?st_mtime;//最后一次修改時(shí)間?
  • ?*??time_t?st_ctime;//最后一次屬性改變時(shí)間?
  • ?*?}?
  • ?*?可通過(guò)stat或fstat函數(shù)獲得文件的其他屬性?
  • ?*?stat函數(shù)用來(lái)判斷沒(méi)有打開(kāi)的文件,而fstat函數(shù)用來(lái)判斷打開(kāi)的文件。?
  • ?*?
  • ?*/?
  • #include?<unistd.h>??
  • #include?<sys/stat.h>???
  • int?main(void)??
  • {??
  • ????struct?stat?buf;??
  • ????stat("/etc/passwd",&buf);??
  • ????/*?
  • ?????*?stat函數(shù)?
  • ?????*?取得文件的屬性?
  • ?????*?sys/stat.h,unistd.h?
  • ?????*?int?stat(const?char?*file_name,struct?stat*buf);?
  • ?????*?將參數(shù)file_name所指的文件狀態(tài)復(fù)制到參數(shù)buf所指的結(jié)構(gòu)中?
  • ?????*?成功返回0,失敗返回-1,錯(cuò)誤存儲(chǔ)于errno?
  • ?????*/??
  • ????printf("/etc/passwd文件的大小是:%d/n",buf.st_size);??
  • ????printf("/etc/passwd文件的最后一次修改時(shí)間是:%d/n",buf.st_ctim);??
  • ????return?0;??
  • }??
  • 總結(jié)

    以上是默认站点為你收集整理的fstat、stat和lstat 区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得默认站点網(wǎng)站內(nèi)容還不錯(cuò),歡迎將默认站点推薦給好友。