open和fopen的區別

2021-10-07 01:55:59 字數 1507 閱讀 1743

函式宣告:

file *

fopen

(const

char

*filename,

const

char

*mode)

引數:1. filename -- 這是 c 字串,包含了要開啟的檔名稱。

2. mode -- 這是 c 字串,包含了檔案訪問模式,模式如下:

"r" 開啟乙個用於讀取的檔案。該檔案必須存在。

"w" 建立乙個用於寫入的空檔案。如果檔名稱與已存在的檔案相同,則會刪除已有檔案的內容,檔案被視為乙個新的空檔案。

"a" 追加到乙個檔案。寫操作向檔案末尾追加資料。如果檔案不存在,則建立檔案。

"r+" 開啟乙個用於更新的檔案,可讀取也可寫入。該檔案必須存在。

"w+" 建立乙個用於讀寫的空檔案。

"a+" 開啟乙個用於讀取和追加的檔案。

返回值:

該函式返回乙個 file 指標。否則返回 null,且設定全域性變數 errno 來標識錯誤。

標頭檔案:

#include

open

函式宣告:

intopen

(const

char

* pathname,

int flags)

;//開啟已經存在的檔案

intopen

(const

char

* pathname,

int flags, mode_t mode)

;//開啟不存在的檔案

引數:- pathname:欲開啟的檔案路徑字串。

- flag:flags引數有一系列常數值可供選擇,可以同時選擇多個常數用按位或運算子連線起來,所以這些常數的巨集定義都以o_開頭,表示or。

(1)必選項,以下三個常數中必須指定乙個,且僅允許指定乙個。

o_rdonly 唯讀開啟

o_wronly 只寫開啟

o_rdwr 可讀可寫開啟

(2)可選項,同時指定0個或多個,和必選項按位或起來

o_creat 若此檔案不存在則建立它。使用此選項時需要提供第三個引數mode,表示該檔案的訪問許可權。

o_excl 如果同時指定了o_creat,並且檔案已存在,則出錯返回。

o_trunc 如果檔案已存在,並且以只寫或可讀可寫方式開啟,則將其長度截斷(truncate)為0位元組。

o_nonblock 對於裝置檔案,以o_nonblock方式開啟可以做非阻塞i/o(nonblock i/o)。

- mode:新建檔案時指定檔案的許可權

7(可讀可寫可執行)、4

(可讀)、2

(可寫)、1

(可執行)

返回值:

成功則返回開啟檔案的描述符,失敗則返回-

1。標頭檔案:

#include

#include

#include

open和fopen的區別

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

open和fopen的區別

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

open和fopen的區別

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