※ 引述《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 ◆