函式功能: 按照前述檔案許可權檢查的4個步驟測試訪問檔案是否具有相應許可權
函式原型: int access( const char *pathname,
int mode)
pathname:所要操作的檔案路徑名
函式原型
int chmod(const char * pathname, mode_t mode)
;int fchmod(
int fd, mode_t mode)
;函式用途: 改變指定檔案的許可權位。
函式說明:
chmod要求給出的是檔案或目錄所在的位置, 而fchmod主要針對的是檔案, 要求呼叫是相應的檔案描述符。
修改時, 程序的有效使用者id必須等於檔案的所有者id, 或是root執行的此程序
函式原型
➢ int chown( const char *pathname, uid_t owner, gid_t group)
;➢ int fchown(
int filedes, uid_t owner, gid_t group)
;➢ int lchown( const char *pathname, uid_t owner, gid_t group)
;函式用途: 更改檔案的使用者id和組id。 成功返回0, 若出錯則返回-
1函式說明:
➢ 如果兩個引數owner或group中的任意乙個是-
1, 則不改變檔案所有者或檔案所屬使用者組
➢ lchown是改變符號鏈結本身的所有者, 而不是該符號鏈結所指向的檔案
➢ 基於bsd的系統中, 只有超級使用者才能更改乙個檔案的所有者
➢ 非超級使用者程序呼叫,則在成功返回時, 該檔案的設定使用者id位和設定組id位會被清除
函式原型: int link ( const char *pathname, const char *newpath)
;函式用途: 任何乙個檔案可以有多個目錄項指向其索引節點, 建立乙個指向現有檔案的新目錄項
函式說明
➢ 此函式建立乙個新目錄項newpath, 它指向pathname指向的檔案。 如果newpath已經存在, 則返回出錯(可以使用新名字
對檔案進行操作,這些名字都指向同乙個檔案,都具有相同的許可權和擁有者)
➢ 建立新目錄項以及增加連線計數是乙個原子操作(不會被os打斷)。
➢ 大多數的系統規定, 只有超級使用者可以建立指向乙個目錄的新連線, 目的是在檔案系統中形成迴圈。
函式原型及標頭檔案
➢ int unlink ( const char *pathname)
; (unistd.h)
➢ int remove( const char *pathname); ( stdio.h)
函式用途:
➢ unlink刪除目錄項, 並將由pathname所引用檔案的鏈結計數減1, 清空這個檔案使用的可用的系統資源(若pathname是乙個符號鏈結,
他只會刪除符號鏈結,而不會刪除符號鏈結所引用的檔案)
➢ remove刪除乙個目錄中的乙個或多個檔案或目錄, 也可以將某個目錄及其下的所有檔案及子目錄均刪除
共同點及差異
➢ unlink是系統呼叫, 而remove是庫函式
➢ remove的引數為普通檔案時等價於unlink
函式原型: int rename ( const char * oldname, const char * newname)
;函式用途: 更名檔案或目錄
函式說明
➢ 如果oldname是乙個檔案而不是目錄, 那麼為該檔案更名
➢ 如果oldname是乙個目錄, 那麼為該目錄更名
➢ 如果oldname和newname引用同一檔案, 則函式不做任何更改而成功返回
➢ 應對包含兩個檔案的目錄具有寫和執行許可權
函式原型: int utime( const char *pathname, const struct utimbuf *times)
;函式用途: 設定訪問和修改檔案的時間
函式說明: 此函式的操作以及執行它所要求的優先權取決於time引數是否是null
➢ 如果times是乙個null, 則訪問時間和修改時間兩者都設定為當前時間, 但必須滿足下面二者之一: (1)
程序的有效使用者id必須等於該檔案的所有者(2) 程序對該檔案有寫許可權
➢ 如果times是非空指標, 則訪問時間和修改時間被設定為times所指向的時間, 此時程序的有效使用者id必須等
於該檔案的所有者id, 或者程序必須是超級使用者的程序。
函式原型: int mkdir(const char *pathname, mode_t mode)
;函式用途: 建立乙個新的空目錄, 其中的. 和 .
. 兩個目錄項由系統自動建立。
函式說明:
➢ 如果在目錄名的前面沒有加任何路徑名, 則在當前目錄下建立由pathname指定的目錄
➢ 如果給出了乙個已經存在的路徑, 將會在該目錄下建立乙個指定的目錄
➢ 在建立目錄時, 應保證新建的目錄與它所在目錄下的檔案沒有重名
➢ 在建立檔案時, 不要把所有的檔案都存放在主目錄中, 可以建立子目錄, 來更有效地組織檔案
函式原型: int rmdir( const char *pathname)
;函式用途: 刪除乙個空目錄
函式說明:
➢ 如果此呼叫使目錄的連線計數成為0, 並且也沒有其他程序開啟此目錄, 則釋放由此目錄占用的空間
➢ 如果連線計數為0, 但有程序開啟了此目錄, 則在此函式返回前, 刪除. 和 .
. 項。 在此目錄中不能再建立新文
件。 但是在最後乙個程序關閉之前並不釋放此目錄
28 檔案基本操作
計算機上面的檔案操作步驟 寫,將記憶體的內容寫入檔案 第三步,關閉檔案 那麼在python環境中呢?序號函式 方法 說明01 open python層面的方法 開啟檔案 02read 檔案內的方法 從cpu中讀取檔案,並且讀取全部檔案 03write 檔案內的方法 修改內容 04close 檔案內的...
6 檔案 目錄操作
with open filepath,r as f f.read 呼叫read 會一次性讀取檔案的全部內容,如果檔案有10g,記憶體就爆了,可以反覆呼叫read size 方法,每次最多讀取size個位元組的內容。呼叫readline 可以每次讀取一行內容,呼叫readlines 一次讀取所有內容並...
Linux 3 檔案和目錄基本操作
檔案和目錄基本操作 根據命令的存在狀態,可以把命令分為 內部命令 和 外部命令 內部命令是系統shell內建的命令,在磁碟中沒有相應的可執行檔案,而外部命令是系統在安裝時安裝時就安裝好地可執行檔案和或程式,如系統 bin sin等目錄下存放可執行檔案。linux系統中命令區分大小,如ls和ls是不相...