C語言 開啟檔案open函式

2021-09-04 10:25:08 字數 1289 閱讀 9217

函式說明:

引數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...