函式說明:
引數mode 則有下列數種組合, 只有在建立新檔案時才會生效, 此外真正建檔案時的許可權會受到umask 值所影響, 因此該檔案許可權應該為 (mode-umaks).
s_irwxu00700 許可權, 代表該檔案所有者具有可讀、可寫及可執行的許可權.
s_irusr 或s_iread, 00400 許可權, 代表該檔案所有者具有可讀取的許可權.
s_iwusr 或s_iwrite, 00200 許可權, 代表該檔案所有者具有可寫入的許可權.
s_ixusr 或s_iexec, 00100 許可權, 代表該檔案所有者具有可執行的許可權.
s_irwxg 00070 許可權, 代表該檔案使用者組具有可讀、可寫及可執行的許可權.
s_irgrp 00040 許可權, 代表該檔案使用者組具有可讀的許可權.
s_iwgrp 00020 許可權, 代表該檔案使用者組具有可寫入的許可權.
s_ixgrp 00010 許可權, 代表該檔案使用者組具有可執行的許可權.
s_irwxo 00007 許可權, 代表其他使用者具有可讀、可寫及可執行的許可權.
s_iroth 00004 許可權, 代表其他使用者具有可讀的許可權
s_iwoth 00002 許可權, 代表其他使用者具有可寫入的許可權.
s_ixoth 00001 許可權, 代表其他使用者具有可執行的許可權.
返回值:若所有欲核查的許可權都通過了檢查則返回0 值, 表示成功, 只要有乙個許可權被禁止則返回-1.
錯誤**:
eexist 引數pathname 所指的檔案已存在, 卻使用了o_creat 和o_excl 旗標.
eaccess 引數pathname 所指的檔案不符合所要求測試的許可權.
erofs 欲測試寫入許可權的檔案存在於唯讀檔案系統內.
efault 引數pathname 指標超出可訪問記憶體空間.
einval 引數mode 不正確.
enametoolong 引數 pathname 太長.
enotdir 引數pathname 不是目錄.
enomem 核心記憶體不足.
eloop 引數pathname 有過多符號連線問題.
eio i/o 訪問錯誤.
附加說明:使用 access()作使用者認證方面的判斷要特別小心, 例如在access()後再作open()空檔案可能會造成系統安全上的問題.
範例
#include #include #include #include main()
執行結果:
linux programmer!
c語言open方式檔案開啟和建立,linux系統
open函式開啟需要的標頭檔案 include include include open使用原型 int open const char pathname,int flags int open const char pathname,int flags,mode t mode const表示常量,p...
python 開啟檔案 open
三 檔案讀寫定位操作 讀 f.read size 如果沒有size即f.read 一次性讀取檔案全部內容,返回型別str 如果有size即f.read 50 讀取最多的位元組內容 1.檔案很小,可一次性讀取,檔案較大,超過記憶體大小,內容爆掉 2.檔案過大,可用f.read size x為每次最多讀...
C語言中open函式
簡述 include int open const char pathname,int oflag,mode t mode 返回值 成功則返回 檔案描述符 否則返回 1 對於 open 函式來說,第三個引數 僅當建立新檔案時 即 使用了o creat 時 才使用,用於指定檔案的訪問許可權位 acce...