檔案許可權相關操作函式

2021-06-18 03:10:15 字數 2437 閱讀 8132

1:sccess函式,用來判斷是否具有訪問檔案的許可權

#include

int access(const char *pathname,int mode)

access函式用於檢測是否可以讀,寫某乙個檔案或者測試某個檔案是否存在,如果測試的檔案是乙個符號連線,access函式將測試這個符號連線引用的檔案

mode有這集中組合:r_ok,w_ok,x_ok,f_ok

如果要查核的許可權都通過了檢查,則返回0,表示成功,只要有乙個許可權被進製則返回-1

2:chown函式和fchown函式:該變檔案的所有者

#include

#include

int chown(const char *path,uid_t owner,gid_t group)

int fchown(int fd,uid_t owner,gid_t group)

chaown和gchown函式用於修改檔案的所有者和組,他們分別使用引數owner和group來指定,如果引數owner或group為-1,則表示對應的所有者或是組不會有所改變root與檔案所有者皆可改變檔案組,但所有者必須是引數group組的成員,chown函式指定的使用引數path作為檔案的路徑,fchown函式使用引數fd指定檔案檔案描述符

當使用root許可權來改變所有者或組時,如果該檔案具有s_isuid,s_isgid許可權,則會清除此許可權,如果具有s_isdid但是不具有    s_ixgrp許可權,則該檔案會被強制鎖定,檔案模式會保留

陳功就返回零,或者就是-1————————————————————————uid——他代表新使用者的編號,gid代表組使用者的組編號

3:chmod函式和fchmod函式,改變.許可權

#include

#inlcude

int chmod(const char *path,mode_t mode)

int fchmod(int fildes,mode_t mode)

chmod和fchmod函式用於將檔案的讀寫執行等許可權改為引數mode表示的值,chmod表示檔案的引數使用的檔案路徑path,fchmod表示檔案的蠶食使用檔案描述符

執行成功返回零,不成功就返回-1

4:unlink函式,刪除檔案

#include

int unlink(const char *pathname)

unlink函式用於刪除引數pathname指定的檔案,如果該檔名為最後連線點,但是其他程序開啟了此檔案,則在所有關於此檔案描述符關閉後才會刪除檔案,如果引數pathname為一副好連線,則此鏈結會被刪除 

執行成功返回零,不成功就返回

5:utime和utimes函式:改變檔案時間

#include

#inlcude

int utime)const char *filename ,strct utimbuf *buf)

struct utimbuf;

utime用來修改引數filename檔案所屬的inode訪問時間,如果buf為null,則將檔案的訪問和修改時間設定為當前的時間

執行成功返回0,失敗返回-1

#include

int utimes (char *filename,struct timeval *tvp)

struct timeval 

函式返回值,如果引數buf為null,則該檔案的訪問時間和更改時間全部會設為目前時間,執行成功返回0,不成功返回-1

6:umask 函式,設定建立新檔案時的許可權掩碼

#include

#inlcude

mode_t umask(mode_t mask)

umask會將系統umask值設定為引數mask與0777與運算後的值,然後將先前的umask值返回,在使用open建立新檔案時,新建立檔案真正的許可權並非起引數mode的值,而是相見算後的值,例如,在建立檔案是指定檔案許可權為0666,通常umask值預設為022,則該檔案的正直許可權則是0666&~022 = 0644

7:link函式:建立檔案連線

#include

int link (const char * oldpath,const char * newpath)

link函式以引數newpath指定名稱,來建立到引數oldpath所指定的已存在檔案乙個新的連線,如果引數newpath指定的名稱為乙個已經在的檔案,則不會建立連線,link函式所建立的硬連線不能跨越不突破那個檔案系統

8:stat函式,fstat函式,lstat函式,獲取檔案資訊

#include

#include

#include

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

int fstat (int filedes,strct stat *buf)

int lstat(const char *path,sruct stat *buf)

struct stat

檔案操作相關函式

首先 檔案分為相對路徑和絕對路徑 比如我有乙個檔名為qaq的txt檔案 他的路徑可以是 d code test qaq.txt 這就是乙個絕對路徑 而如果當前路徑是d code,想要描述qaq.txt的話只需要輸入 test qaq.txt 而如果當前路徑是d other,想要描述qaq.txt的話...

Linux下對檔案許可權的相關操作

1.改變使用者對檔案的讀寫執行許可權 chmod 三種基本許可權 r讀 數值表示為4w寫 數值表示為2 x可執行 數值表示為1 例 若檔案test.txt的許可權為 rw rw r 則表示如下資訊 rw rw r 一共十個字元,分成四段。第乙個字元 表示普通檔案 這個位置還可能會出現 l 鏈結 d ...

Linux檔案許可權相關

usage chown option owner group file or chown option reference rfile file chown crazydemo c 修改屬主 chown crazydemo crazydemo c 修改屬主和屬組 chown root.root c ...