如題,看到好多呼叫裝置檔案的程式都是用的open函式,難道用fopen不可以嗎?
主要求高手談談這兩個函式的區別,以及具體在什麼時候該用哪個函式?
第 1 樓 tent8()
2006-8-26 17:53:47
得分:2
fopen是ansic標準中的c語言庫函式,在不同的系統中應該呼叫不同的核心api
linux中的系統函式是open,fopen是其封裝函式,個人觀點。僅供參考。
第 2 樓 fytzzh(我愛summer)
2006-8-26 20:12:19
得分:6
檔案描述符是linux下的乙個概念,linux下的一切裝置都是以檔案的形式操作.如網路套接字、硬體裝置等。當然包括操作檔案。
fopen是標準c函式。返回檔案流而不是linux下檔案控制代碼。
第 3 樓 lurenfu(具有中國特色的社會主義初級階段,一百年不變)
2006-8-28 16:27:38
得分:2
裝置檔案不可以當成流式檔案來用,只能用open
fopen是用來操縱正規檔案的,並且設有緩衝的,跟open還是有一些區別
第 4 樓 grass312(十步殺一人)
2006-8-28 20:03:37
得分:2
一般用fopen開啟普通檔案,用open開啟裝置檔案
第 5 樓 hjmhjms(大笨汪)
2006-8-29 11:50:44
得分:2
fopen是標準c裡的,而open是linux的系統呼叫.
他們的層次不同.
fopen可移植,open不能
第 6 樓 cllr(寂寞2001)
2006-8-29 20:13:08
得分:6
我認為fopen和open最主要的區別是fopen在使用者態下就有了快取,在進行read和write的時候減少了使用者態和核心態的切換,而open則每次都需要進行核心態和使用者態的切換;表現為,如果順序訪問檔案,fopen系列的函式要比直接呼叫open系列快;如果隨機訪問檔案open要比fopen快。
fopen是有緩衝機制的,它使用了file這個結構才儲存緩衝資料。
open沒有快取機制,每次讀操作都直接從檔案系統中獲取資料。
看一下file這個結構的定義就知道區別了,file包含了乙個open返回回來的handle
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等配合使用 ...