linux檔案io操作可以分為兩種:
1.帶快取的檔案io操作,包括fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等
2.不帶快取的檔案io操作,包括open, close, read, write, getc, getchar, putc, putchar 等
兩者的區別:
1.帶快取的io操作是在標準c裡面定義的(可移植),而不帶快取的io操作是posix中定義的(不可移植),屬於系統呼叫。帶快取的實際上是在不帶快取的基礎之上
封裝了一層,維護了乙個輸入輸出緩衝區,使之能跨os,成為asci標準。
2.fread一次可以讀乙個結構,read在linux/unix中讀二進位制與普通檔案沒有區別。
3.fopen返回的是檔案流,open返回的是檔案描述符。裝置檔案不可以當成流式檔案來用,只能用open,而在linux/unix中任何裝置都是檔案,都可以用open,read等。
另外,標準io又提供了3種不同方式的緩衝
1.全緩衝。即緩衝區被寫滿或是呼叫fflush後,資料才會被寫入磁碟。
2.行緩衝。即緩衝區被寫滿或是遇到換行符時,才會進行實際的io操作。當流涉及乙個終端時(標準輸入和標準輸出),通常使用行緩衝。
3.不緩衝 。標準io庫不對字元進行快取處理。標準出錯流stderr往往是不帶快取的,使得出錯資訊可以盡快顯示出來。
Linux 檔案IO理解
linux檔案io操作可以分為兩種 1.帶快取的檔案io操作,包括fopen,fclose,fread,fwrite,fgetc,fgets,fputc,fputs,freopen,fseek,ftell,rewind等 2.不帶快取的檔案io操作,包括open,close,read,write,g...
Linux檔案 檔案IO概述
posix portable operating system inte ce,可移植作業系統介面規範 標準最初由ieee institute of electrical and electronics engineers,電氣和電子工程師協會,是目前最大的全球性非營利性專業技術學會 制定,目的是提...
Linux檔案I O操作
可以呼叫l s e e k顯式地定位乙個開啟檔案。include include off t lseek int filesdes,off t offset,int whence 返回 若成功為新的檔案位移,若出錯為 1。對引數offset 的解釋與引數w h e n c e 的值有關。若whenc...