C庫函數常用的有:fopen, fclose, fread, fwrite, fgets, fputs, fscanf, fprintf, fseek, fgetc, fputc, ftell, feof, flush等,
當使用fopen打開一個文件時通常返回一個文件指針 FILE *fp。FILE類型是一個結構體,包含文件描述符(整形值)、文件讀寫指針位置、I/O緩沖區(內存地址)。
虛擬地址空間,Linux為每一個運行的程序(進程),操作系統都會為其分配一個0~4G的地址空間(虛擬地址空間)。0~3G為用戶段,3~4G為內核段。內核段中用戶不能進行讀寫,其中包含一個PCB(進程控制塊),塊中包含一個文件描述符表,從0~1023。其中0為標準輸入,1為標準輸出,2為標準錯誤。進程總是使用
較小的文件描述符
?