APUE筆記 第四章 檔案和目錄

2021-10-16 09:03:50 字數 2523 閱讀 2814

功能:給定乙個pathname,stat函式返回乙個與此命名檔案有關的資訊結構,fstat函式獲得已在描述符filedes上開啟的檔案的有關資訊。lstat函式類似於stat,但是當命名的檔案是乙個符號連線時,lstat返回該符號連線的有關資訊,而不是由該符號連線引用的檔案的資訊。

(1)普通檔案(regular file)-> s_isreg()

(2)目錄檔案(directory file) -> s_isdir()

對乙個目錄檔案具有讀許可權的任一程序都可以讀該目錄的內容,但只有核心可以寫目錄檔案。

(3)字元特殊檔案(character special file)-> s_ischr()

(4)塊特殊檔案(block special file) -> s_isblk()

此型別典型用於磁碟裝置。

(5)fifo -> s_isfifo()

用於程序間通訊,也稱管道。

(6)套介面(socket)-> s_issock()

用於程序間的網路通訊。也可用於在一台宿主機上的程序之間的非網路通訊。

(7)符號連線(symbolic link) -> s_islnk()

功能:按實際使用者id和實際組id進行訪問許可權測試。

access函式的mode引數:

r_ok測試讀許可權

w_ok測試寫許可權

x_ok測試執行許可權

f_ok測試檔案是否存在

功能:umask函式為程序設定檔案方式建立遮蔽字,並返回以前的值。

例:umask(0) 即許可權為0777

功能:更改現存盤案的訪問許可權。chmod函式在指定的檔案(第乙個引數為路徑)上進行操作,而fchmod函式則對已開啟的檔案(第乙個引數為檔案描述符)進行操作。

s_isuid 執行時設定-使用者-id

s_isgid 執行時設定-組-id

s_isvtx 儲存正文

s_irwxu 使用者(所有者)讀、寫和執行

s_irusr 使用者(所有者)讀

s_iwusr 使用者(所有者)寫

s_ixusr 使用者(所有者)執行

s_irwxg 組讀、寫和執行

s_irgrp 組讀

s_iwgrp 組寫

s_ixgrp 組執行

s_irwxo 其他讀、寫和執行

s_iroth 其他讀

s_iwoth 其他寫

s_ixoth 其他執行

功能:chown和fchown函式更改檔案的使用者id和組id。在符號連線情況下,lchown更改符號連線本身的所有者,而不是該符號連線所指向的檔案。

symlink功能:建立乙個符號連線。

#include

intsymlink

(const

char

*actualpath,

const

char

* sympath)

;返回:若成功則為0,若出錯則為-

1

該函式建立了乙個指向actualpath的新目錄項sympath,在建立此符號連線時,並不要求actualpath已經存在(在上一節結束部分的例子中我們已經看到了這一點)。並且,actualpath和sympath並不需要位於同一檔案系統中。

readlink功能:因為open函式跟隨符號連線,所以需要有一種方法開啟該連線本身,並讀該連線中的名字。readlink函式提供了這種功能。

#include

intreadlink

(const

char

*pathname,

char

*buf,

int bufsize)

;返回:若成功則為讀的位元組數,若出錯則為-

1

此函式組合了open, read和close的所有操作。如果此函式成功,則它返回讀入buf的位元組數。在buf中返回的符號連線的內容不以null字元終止。

功能:乙個檔案的訪問和修改時間可以用utime函式更改。

功能:用mkdir函式建立目錄,用rmdir函式刪除目錄。

功能:在前兩個函式中,可以分別用pathname或開啟檔案描述符來指定新的當前工作目錄。

getcwd函式:從當前工作目錄開始,找到其上一級的目錄,然後讀其目錄項,直到該目錄項中的i節點編號數與工作目錄i節點編號數相同,這樣地就找到了其對應的檔案

傳統的unix實現在核心中設有緩衝儲存器,大多數磁碟i / o都通過快取進行。當將資料寫到檔案上時,通常該資料先由核心複製到快取中,如果該快取尚未寫滿,則並不將其排入輸出佇列,而是等待其寫滿或者當核心需要重用該快取以便存放其他磁碟塊資料時,再將該快取排入輸出佇列,然後待其到達隊首時,才進行實際的i / o操作。這種輸出方式被稱之為延遲寫(delayed write)。延遲寫減少了磁碟讀寫次數,但是卻降低了檔案內容的更新速度,使得欲寫到檔案中的資料在一段時間內並沒有寫到磁碟上。當系統發生故障時,這種延遲可能造成檔案更新內容的丟失。為了保證磁碟上實際檔案系統與快取中內容的一致性,unix系統提供了sync和fsync兩個系統呼叫函式。

APUE 第四章檔案和目錄

本章內容較多,本文只記錄在學習過程中所發現的問題,同時記錄所需掌握的linux方面知識.檔案型別 普通檔案 目錄檔案 塊特殊檔案 字元特殊檔案 fifo 套接字 符號鏈結 這裡要介紹下dos2unix命令,剛好前幾天在工作中有所接觸。dos2unix命令用來將dos格式的文字檔案轉換成unix格式的...

APUE 第四章 檔案和目錄

本章主要圍繞stat這個函式來講的。int stat const char pathname,struct stat buf int fstat int fd,struct stat buf int lstat const char pathname,sttuct stat buf 如果是符號鏈結,...

《APUE》第四章筆記(2)

下面介紹對stat結構的各個成員的操作函式。先貼個stat結構的圖 access函式 include int access const char pathname,int mode 其中,mode是表中的按位或。返回值 若成功返回0,若出錯返回 1 當程序對乙個檔案進行某種操作 讀或寫或執行 時,核...