open函式引數詳情

2021-08-20 20:08:18 字數 1866 閱讀 1380

#include 

#include

#include

int open(const

char * pathname, int flags);

int open(const

char * pathname, int flags, mode_t mode);

o_rdonly    以唯讀方式開啟檔案

o_wronly 以只寫方式開啟檔案

o_rdwr 以可讀寫方式開啟檔案. 上述三種旗標是互斥的, 也就是不可同時使用, 但可與下列的旗標利用or(|)運算子組合.

o_creat 若欲開啟的檔案不存在則自動建立該檔案.

o_excl 如果o_creat 也被設定, 此指令會去檢查檔案是否存在. 檔案若不存在則建立該檔案, 否則將導致開啟檔案錯誤. 此外, 若o_creat 與o_excl 同時設定, 並且欲開啟的檔案為符號連線, 則會開啟檔案失敗.

o_noctty 如果欲開啟的檔案為終端機裝置時, 則不會將該終端機當成程序控制終端機.

o_trunc 若檔案存在並且以可寫的方式開啟時, 此旗標會令檔案長度清為0, 而原來存於該檔案的資料也會消失.

o_nonblock 以不可阻斷的方式開啟檔案, 也就是無論有無資料讀取或等待, 都會立即返回程序之中.

o_ndelay 同o_nonblock.

o_sync 以同步的方式開啟檔案.

o_nofollow 如果引數pathname 所指的檔案為一符號連線, 則會令開啟檔案失敗.

o_directory 如果引數pathname 所指的檔案並非為一目錄, 則會令開啟檔案失敗。注:此為linux2. 2 以後特有的旗標, 以避免一些系統安全問題.

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 許可權, 代表其他使用者具有可執行的許可權.

eexist 引數pathname 所指的檔案已存在, 卻使用了o_creat 和o_excl 旗標.

eaccess 引數pathname 所指的檔案不符合所要求測試的許可權.

erofs 欲測試寫入許可權的檔案存在於唯讀檔案系統內.

efault 引數pathname 指標超出可訪問記憶體空間.

einval 引數mode 不正確.

enametoolong 引數 pathname 太長.

enotdir 引數pathname 不是目錄.

enomem 核心記憶體不足.

eloop 引數pathname 有過多符號連線問題.

eio i/o 訪問錯誤.

檔案open函式的引數

這裡曾遇到過o trunc 這個引數,當時沒看明白啥意思,後來弄了個例子,英文不好的桑不起啊。int open char pathname,int access 為讀或寫開啟乙個檔案,按後按access來確定是讀檔案還是寫檔案,access值見下表 access值 意義 o rdonly 讀檔案 o...

open函式後面引數 a , w , r 的區別

open 檔案操作 f open tmp hello w open 路徑 檔名,讀寫模式 讀寫模式 r唯讀,r 讀寫,w新建 會覆蓋原有檔案 a追加,b二進位制檔案.常用模式 如 rb wb r b 等等 讀寫模式的型別有 ru 或 ua 以讀方式開啟,同時提供通用換行符支援 pep 278 w 以...

利用main函式引數實現計算功能詳情

程式可以接受三個引數,第乙個引數 a 選項執行加法,s 選項執行減法,m 選項執行乘法,d 選項執行除法,後面兩個引數為運算元。define crt secure no warnings include include include 加減乘除功能函式 int add int x,int y int...