檔案操作的幾套介面

2021-07-11 18:54:09 字數 2065 閱讀 9553

基本介面:

檔案讀寫:

#include

#include

#include

int open(const char* pathname,int flags)

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

int creat(const char *pathname, mode_t mode)

引數說明:

pathname :要開啟的檔名

flags:標誌位,指定開啟檔案的操作方式以及開啟時的一些行為。

mode:用於新檔案的許可權標誌位。

返回值:

-1: 操作失敗,並設定變數errno的值

不為 -1:檔案描述符,

flags引數的取值可以為:

1、o_rdonly :以唯讀的方式開啟檔案

2、o_wronly :以只寫的方式開啟檔案

3、o_rdwr : 以讀寫的方式開啟檔案

以上三種取值是互斥的,不能同時使用,但是他們可以和以下的取值用或的方式組合起來使用:

1、o_creat :如果被開啟的檔案不存在,就自動穿件這個檔案

2、o_excl :如果o_creat標誌已經使用,那麼當由pathname引數指定的檔案已經存在時,open函式返回失敗。如果pathname給出的是乙個符號鏈結,那麼無論它指向的檔案是否存在,對open函式的呼叫都會返回失敗。

3、o_nocity :如果被開啟的檔案是乙個終端裝置檔案,它不會成為這個程序的控制終端。

4、o_trunc :如果被開啟的檔案存在並且是以可寫方式的開啟的,則清空檔案原有的內容

6、o_nonblock :被開啟的檔案將以非阻塞的方式進行操作

o_nonblock一樣。7、o_ndelay : 同

8、o_sync :被開啟的檔案將以同步i/o的方式進行操作,即任何寫操作都會同步到硬體裝置上。同步完成後,對寫函式的呼叫才會返回。

9、o_nofollow :如果pathname是乙個符號鏈結,則對open函式的呼叫將返回失敗。

10、o_directory :如果pathname不是目錄,則對open函式的呼叫將返回失敗。

需要注意的事,open函式有兩個原型,其中乙個多出了mode,它用於指定建立的新檔案的訪問權,如果開啟的時候使用了o_creat標誌建立檔案,則一般都要給出mode引數,她的一些常用取值如表1.0所示,這些值可以用按位或的方式進行組合使用。新檔案的所屬使用者和所訴組合

s_irwxu

00700

檔案所屬使用者有讀寫和執行許可權

s_irusr (s_iread)

00400

檔案所屬使用者有讀許可權

s_imusr (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

組內使用者有執行許可權

因為在呼叫open函式的時候,o_wronly,o_creat,o_trunc三個標誌位經常組合使用,因此由乙個專門的函式creat()來實現,如下:

creat(pathname, mode)

實際等價於:open(pathnames,o_wronly|o_creat|o_trunc, mode)

兩個不同程序可以同時開啟同乙個檔案,但是他們的檔案描述符一般是不一樣的,也可以同時對該檔案進行讀寫,只是後面程序寫的會覆蓋前面程序寫的內容。

檔案操作介面

linux 下檔案操作 1.建立檔案 int creat const char filename,mode t mode filename為所操作的檔案的路徑名 mode指定新建檔案的訪問許可權,它同umask一起決定檔案的最終許可權 2.開啟檔案 int open const char pathn...

Spring Resource檔案操作介面

spring中獲取資源的方式一共有以下四種 通過resource介面獲取資源 通過resourceloader介面獲取資源 將resource注入到bean中的方式獲取資源 下面是對每種方式的詳細講解 resource介面的實現類有 實現類 說明classpathresource 通過類路徑獲取資源...

檔案操作的主要介面API

朱老師物聯網大講堂 學習筆記 學習乙個作業系統,就是學習如何使用這個作業系統的api,就好像練習乙個新英雄,要學會使用他的技能,並結合召喚師峽谷環境特點,發揮你的實力。操作檔案,得先open,得到檔案描述符,若沒有open成功,無法得到檔案描述符,也就無法操作,在進行read,write等操作後,要...