當前位置:聚美館>智慧生活>心理>

open和fopen的區別

心理 閱讀(6.11K)
open和fopen的區別

1、來源不同

open是unix系統調用函數(包括Linux),返回的是檔案描述符,它是檔案描述符表裏的索引。

fopen是ANSIC標準中的C語言庫函數,在不同的系統中應該調不同的內核api,返回的是一個指向檔案結構的指針。

2、移植性

從來源看,fopen是C標準函數,因此擁有良好的移植性,而open是unix系統調用,移植性有限,如windows下相似的功能使用api函數CreatFile。

3、使用範圍

open返回檔案描述符,而檔案描述符是unnix系統下的重要概念,unix下的一切設備都是檔案的形式操作,如網絡套接字、硬件設備等、當然包括操作普通正規檔案(Regular File)

Fopen是從來操縱普通正規檔案(Regular File)的

4、 檔案IO層次

如果從檔案IO的角度來看,open屬於低級IO函數,fopen屬於進階IO函數,低級和進階的簡單區分標準是:誰離系統內核更近,低級檔案IO執行在內核態、進階檔案IO執行在用戶態。

5、 緩衝區

open沒緩衝區,fopen有緩衝區