精華區beta Programming 關於我們 聯絡資訊
※ 引述《PCMan.bbs@bbs.sayya.org (PCMan X Project)》之銘言: > ※ 引述《SwallowMoon.bbs@bbs.ee.ndhu.edu.tw (柳.心戀)》之銘言: > > 的確不是標準的 system call , 可是那應該無所謂 ; > > 因為標準的 system call 裡面也有 fread , fwrite 可以使用 ; > fread, fwrite 這個是 libc 提供,並非 system call > > 可是其實無所謂 , 因為重點不是在選用讀取檔案的函式上面 ; > > 主要的差異是在於使用 二元檔 或 文字檔 的模式開啟的緣故 ; > > open 是 O_BINARY 與 O_TEXT , fopen 是 rb 與 rt 的差異 ; > > 在二元模式底下 , 換行為 \r \n ; 在文字模式底下 , 換行為 \n ; > Windows 底下有 _open, _close 之類的.... > 非標準,可以用 > #ifdef WIN32 > #define open(file, mode) _open(file, mode) > #endif > 應該可以動,然後有些常數可能要再 #define 一下 int _open(const char *filename, int oflag); int _open(const char *filename, int oflag, int pmode); _open 可以有第三參數,在實作上是用 ... 可變長度引數同 printf 所以定義 open(file, mode) 這樣的 macro 會有問題 除非支援 C99 .. -- , 秘密情人 (bbs.cse.ttu.edu.tw) ~\ Post From: 61-70-137-117.adsl.static.giga.net.tw