首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

一起Talk C栗子吧(第141回):文件指針與文件流——標準庫I/O基礎

     編輯:關於C

從文件描述符到文件指針

前回介紹了系統級的文件描述符(int fd)。本回進入標準庫層面:文件流與文件指針。

文件流:抽象的數據通道

  • 文件操作本質是持續的數據讀/寫,像水流一樣,故稱「流」(Stream)。
  • 三大標準流:標準輸入(stdin)、標準輸出(stdout)、標準錯誤(stderr)。
  • 進程啟動自動打開,結束自動關閉。

文件指針:FILE*

  • 指向文件流的不透明結構體指針,封裝了文件描述符、緩衝區指針、狀態標誌等。
  • 標準庫提供三個預定義指針:stdin、stdout、stderr,對應文件描述符0、1、2。
  • 最大打開流數受FOPEN_MAX限制(通常≥16,Linux默認256)。

對比學習:描述符 vs 指針

特性文件描述符文件指針
提供者操作系統內核C標準庫
類型非負整數FILE* 不透明指針
API風格open/read/write/closefopen/fread/fwrite/fclose
緩衝無(直接系統調用)用戶態緩衝(塊/行/無緩衝)
可移植性POSIX系統ANSI C標準,跨平台

兩者本質相通:FILE*內部持有fd。掌握一種,另一種易於類比。

下一回預告

詳細講解fopen、fread、fwrite、fclose等核心函數原型與參數,並給出完整示例代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved