From: IWATSUKI Hiroyuki Date: 2004-12-08T15:48:44+09:00 Subject: [ruby-dev:25121] Re: non-stdio buffering 岩月と申します。 Tanaka Akira wrote: > まず、__human68k__ 用の、fmode(fptr->f, _IOBIN) というコードがありまし > た。 > > * human68k は捨てる 捨てられるのはかなり悲しいのでフォローします。 > * fmode と等価なことを file descriptor に対して行う方法を調べる > (というか、human64k の text mode は stdio と kernel のどっちで行われ > ているのだろう?) stdioです。具体的には下請けのunistdの関数内で改行文字や^Zの変換が行われ ています。Human68k側は何もしてません。 あと、他のOSと同様にsetmodeが使えますので、以下の#if __human68k__の部分 は削除していただいて構いません。 #ifdef __human68k__ if (fptr->f) fmode(fptr->f, _IOBIN); #else if (fptr->f && setmode(fptr->fd, O_BINARY) == -1) rb_sys_fail(fptr->path); #endif # 移植した当初にはsetmodeがまだ無かったんだと思います。 -- Hiroyuki Iwatsuki