open函式簡介

2022-09-12 01:54:10 字數 1173 閱讀 3806

1.表頭檔案

#include

#include

#include

2.定義函式

int open( const char * pathname, int flags);

int open( const char * pathname,int flags, mode_t mode);

對於 open 函式來說,第三個引數(...)僅當建立新檔案時才使用,用於指定檔案的訪問許可權

pathname 是待開啟/建立檔案的路徑名

flags 用於指定檔案的開啟/建立模式,這個引數可由以下常量(定義於 fcntl.h)通過邏輯或構成

o_rdonly 唯讀模式

o_wronly 只寫模式

o_rdwr 讀寫模式

以上三者是互斥的,即不可以同時使用。開啟/建立檔案時,至少得使用上述三個常量中的乙個。以下常量是選用的

以下三個常量同樣是選用的,它們用於同步輸入輸出

o_dsync 等待物理 i/o 結束後再 write。在不影響讀取新寫入的資料的前提下,不等待檔案屬性更新。

o_rsync read 等待所有寫入同一區域的寫操作完成後再進行

o_sync 等待物理 i/o 結束後再 write,包括更新檔案屬性的 i/o

3.返回值:成功則返回檔案描述符,否則返回 -1。

返回檔案描述符(整型變數0~255)。由open 返回的檔案描述符一定是該程序尚未使用的最小描述符。只要有乙個許可權被禁止則返回-1。

4.錯誤**:(均已e開頭,將其去掉就是有關於錯誤的方面的單詞或單詞的縮寫)

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

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

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

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

einval 引數mode 不正確。

enametoolong 引數pathname太長。

enotdir 引數pathname不是目錄。

enomem 核心記憶體不足。

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

eio i/o 訪問錯誤。

LINUX下OPEN函式簡介

open 函式用於開啟和建立檔案。以下是 open 函式的簡單描述 fcntl.h int open const char pathname,int oflag,mode t mode 返回值 成功則返回檔案描述符,否則返回 1 對於 open 函式來說,第三個引數 僅當建立新檔案時才使用,用於指定...

視窗函式open

功能 開啟視窗。該函式有兩種語法格式,語法一為開啟程式設計時已知資料型別的視窗物件,語法二為開啟程式執行後才能確定資料型別的視窗物件。語法一 open windowvar 語法二 open windowvar,windowtype eg open w about,w main 語法一 ps.wind...

open函式與close函式

標頭檔案 include 在centos6.0中只要此標頭檔案就可以 include incldue 功能 開啟和建立檔案 建立乙個檔案描述符,其他的函式可以通過文 件描述符對指定檔案進行讀取與寫入的操作。原型 int open const char pathname,int flags int o...