open與fopen的區別

2021-07-25 13:15:19 字數 1997 閱讀 5378

1.open函式

原型:int open(const char *path, int access,int mode)

path 

要開啟的檔案路徑和名稱 

access  訪問模式

巨集定義和含義如下: 

o_rdonly 

1  唯讀開啟 

o_wronly 

2  只寫開啟 

o_rdwr 

4  讀寫開啟 

還可選擇以下模式與以上3種基本模式相與: 

o_creat 

0x0100 

建立乙個檔案並開啟 

o_trunc 

0x0200 

開啟乙個已存在的檔案並將檔案長度設定為0,其他屬性保持 

o_excl 

0x0400 

未使用 

0x0800 

追加開啟檔案 

o_text 

0x4000 

開啟文字檔案翻譯cr-lf控制字元 

o_binary 

0x8000 

開啟二進位制字元,不作cr-lf翻譯 

mode 

該引數僅在access=o_creat方式下使用

其取值如下: 

s_ifmt 

0xf000 

檔案型別掩碼 

s_ifdir 

0x4000 

目錄 s_ififo 

0x1000 

fifo 專用 

s_ifchr 

0x2000 

字元專用 

s_ifblk 

0x3000 

塊專用 

s_ifreg 

0x8000 

只為0x0000 

s_iread 

0x0100 

可讀 s_iwrite 

0x0080 

可寫 s_iexec 

0x0040 

可執行2.fopen函式

原型:file *fopen(char *filename, char *mode)

filename 

檔名稱

mode 

開啟模式

模式取值如下: 

r  唯讀方式開啟乙個文字檔案 

rb  唯讀方式開啟乙個二進位制檔案 

w  只寫方式開啟乙個文字檔案 

wb  只寫方式開啟乙個二進位制檔案 

a  追加方式開啟乙個文字檔案 

ab  追加方式開啟乙個二進位制檔案 

r+  可讀可寫方式開啟乙個文字檔案 

rb+ 可讀可寫方式開啟乙個二進位制檔案 

w+  可讀可寫方式建立乙個文字檔案 

wb+ 可讀可寫方式生成乙個二進位制檔案 

a+  可讀可寫追加方式開啟乙個文字檔案 

ab+ 可讀可寫方式追加乙個二進位制檔案

3.open和fopen的區別

前者屬於低階io,後者是高階io。

前者返回乙個檔案描述符,後者返回乙個檔案指標。

前者無緩衝,後者有緩衝。

前者與 read, write 等配合使用, 後者與 fread, fwrite等配合使用。

後者是在前者的基礎上擴充而來的,在大多數情況下,用後者。 

open(outfilename,o_wronly|o_creat|o_trunc,0644);請問,裡面的0644代表什麼?

int open(const char *path, int oflags, mode_t mode);當使用帶有o_creat標誌建立檔案時,必須使用以上帶有三個引數格式的open呼叫。可以 $man open 然後有以下內容 00400 s_irusr 檔案所有者有讀許可權

00200 s_iwusr 檔案所有者有寫許可權

00040 s_irgrp 組使用者有讀許可權

00004 s_iroth 其他使用者有讀許可權

fopen與open的區別

open和fopen的區別 1.緩衝檔案系統 緩衝檔案系統的特點是 在記憶體開闢乙個 緩衝區 為程式中的每乙個檔案使用,當執行讀檔案的操作時,從磁碟檔案將資料先讀入記憶體 緩衝區 裝滿後再從記憶體 緩衝區 依此讀入接收的變數。執行寫檔案的操作時,先將資料寫入記憶體 緩衝區 待記憶體 緩衝區 裝滿後再...

fopen與open的區別

fopen與open的區別 可以參考 4.6,比較詳細的講解了fopen,open,檔案描述符,檔案指標,以及在父程序與子程序的不同.摘自chinaunix open和fopen的區別 前者屬於低階io,後者是高階io。前者返回乙個檔案描述符 使用者程式區的 後者返回乙個檔案指標。前者無緩衝,後者有...

fopen與open的區別

2011 02 25 14 40 23 分類 c 字型大小訂閱 相同點 都是用來完成檔案開啟操作的函式 不同點 open是系統呼叫,返回的是檔案控制代碼,fopen是庫函式,返回的是乙個指向檔案結構的指標 open與 read,write等配合使用,fopen與 fread,fwrite等配合使用 ...