一:檔案系統:
a:檔案緩衝區
所謂緩衝檔案系統是指系統自動的在記憶體區為每乙個正在使用的檔案開闢乙個檔案緩衝區。
從記憶體向磁碟輸出資料必須先送到記憶體中的緩衝區,裝滿緩衝區後才一起送到磁碟。
從磁碟向記憶體讀入資料,則一次從磁碟檔案將一批資料輸入到記憶體緩衝區,充滿緩衝區後逐個的將資料存入程式資料區。
b:open和fopen的區別:
1.緩衝檔案系統
緩衝檔案系統的特點是:在記憶體開闢乙個「緩衝區」,為程式中的每乙個檔案使用,當執行讀檔案的操作時,從磁碟檔案將資料先讀入記憶體「緩衝區」, 裝滿後再從記憶體「緩衝區」依此讀入接收的變數。執行寫檔案的操作時,先將資料寫入記憶體「緩衝區」,待記憶體「緩衝區」裝滿後再寫入檔案。由此可以看出,記憶體 「緩衝區」的大小,影響著實際操作外存的次數,記憶體「緩衝區」越大,則操作外存的次數就少,執行速度就快、效率高。一般來說,檔案「緩衝區」的大小隨機器 而定。
fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等
2.非緩衝檔案系統
緩衝檔案系統是借助檔案結構體指標來對檔案進行管理,通過檔案指標來對檔案進行訪問,既可以讀寫字元、字串、格式化資料,也可以讀寫二進位制數 據。非緩衝檔案系統依賴於作業系統,通過作業系統的功能對檔案進行讀寫,是系統級的輸入輸出,它不設檔案結構體指標,只能讀寫二進位制檔案,但效率高、速度 快,由於ansi標準不再包括非緩衝檔案系統,因此建議大家最好不要選擇它。本書只作簡單介紹。open, close, read, write, getc, getchar, putc, putchar 等。
open 是系統呼叫 返回的是檔案控制代碼,檔案的控制代碼是檔案在檔案描述副表裡的索引,fopen是c的庫函式,返回的是乙個指向檔案結構的指標。
fopen是ansic標準中的c語言庫函式,在不同的系統中應該呼叫不同的核心api
linux中的系統函式是open,fopen是其封裝函式,個人觀點。僅供參考。
檔案描述符是linux下的乙個概念,linux下的一切裝置都是以檔案的形式操作.如網路套接字、硬體裝置等。當然包括操作檔案。
fopen是標準c函式。返回檔案流而不是linux下檔案控制代碼。
裝置檔案不可以當成流式檔案來用,只能用open
fopen是用來操縱正規檔案的,並且設有緩衝的,跟open還是有一些區別
一般用fopen開啟普通檔案,用open開啟裝置檔案
fopen是標準c裡的,而open是linux的系統呼叫.
他們的層次不同.
fopen可移植,open不能
我認為fopen和open最主要的區別是fopen在使用者態下就有了快取,在進行read和write的時候減少了使用者態和核心態的切換,而open則每次都需要進行核心態和使用者態的切換;表現為,如果順序訪問檔案,fopen系列的函式要比直接呼叫open系列快;如果隨機訪問檔案open要比fopen快。
來自論壇的經典回答:
前者(open)屬於低階io,後者(fopen)是高階io。
前者返回乙個檔案描述符(使用者程式區的),後者返回乙個檔案指標。
前者無緩衝,後者有緩衝。
前者與 read, write 等配合使用, 後者與 fread, fwrite等配合使用。
後者是在前者的基礎上擴充而來的,在大多數情況下,用後者。
php基礎語法 檔案格式
1 php 指令碼可放置於文件中的任何位置。2 php 指令碼以 結尾 此處是 php 3 php 檔案的預設副檔名是 php 4 php 檔案通常包含 html 標籤以及一些 php 指令碼 5 php 語句以分號結尾 php 塊的關閉標籤也會自動表明分號 因此在 php 塊的最後一行不必使用分號...
檔案系統 why檔案系統
為什麼需要檔案系統,可否由作業系統直接寫裸裝置?裸裝置是一種沒有經過格式化的磁碟或分割槽,即讓作業系統直接管理操作磁碟設定,進行資料讀寫等。通過檔案系統的方式組織磁碟儲存和資料管理有很多好處,比如 1.資料讀取 管理等操作變得簡單便捷 檔案系統給使用者提供了乙個簡單的操作介面,只需簡單的操作就能實現...
學習筆記 Python基本語法 檔案處理
掌握python中檔案處理,檔案流的相關操作 開啟 操作 關閉 檔案以二進位制的方式儲存 檔案的開啟方式 變數名 open 檔名 開啟模式 檔案關閉方式 變數名 close 開啟模式 意義 r 唯讀模式,預設值,如果檔案不存在,返回filenotfounderror w 覆蓋寫模式,檔案不存在則建立...