1. 程式人生 > >Linux(C/C++)下的檔案操作open,fopen

Linux(C/C++)下的檔案操作open,fopen

open是Linux下的底層系統呼叫函式,fopen是C/C++下的標準I/O庫函式,帶輸入/輸出緩衝

Linux下的fopen是open的封裝函式,fopen最終還是要呼叫底層的系統呼叫open。

所以在Linux下如果對裝置進行明確的控制,最好使用底層系統呼叫(open)。

open對應的檔案操作有:close, read, write,ioctl 等。
fopen 對應的檔案操作有:fclose, fread, fwrite, freopen, fseek, ftell, rewind等。

open與fopen的區別:

  • fread是帶緩衝的,read是不帶緩衝的;

  • fopen是標準C裡面定義的,open是POSIX中定義的;

  • fread可以讀一個結構,read在Linux/Unix中讀二進位制與普通檔案沒有區別;

  • fopen不能指定要建立檔案的許可權,open可以指定;

  • fopen返回檔案指標,open返回檔案描述符(整數);

  • Linux/Unix中任何裝置都是檔案,都可以使用read/open;