Nozomu Ando
nand****@mac*****
2004年 3月 24日 (水) 03:54:33 JST
nand です。 >>>>> On Tue, 23 Mar 2004 22:32:42 +0900, Ryutaro Amano said: > man,googleなどでfflush自体の働きはわかりました。もっともTerminalやemacs -nw > ではokなのに、Carbon Emacsだけfflush(stdout)が必要なのか釈然としないのですが > (X11上のXEmacsでもfflushなしで他と同じように動きましたので)。 > よろしければその辺りを解説していただけないでしょうか。 Terminal で ./a.out | cat を実行したのとだいたい同じことが起こって いると思って下さい。 Mac OS X 10.3.x をお使いでしたら、.emacs などで、 (setq process-connection-type t) すれば、多分 XEmacs と同じ振舞になると思います。 Mac OS X 用 GNU Emacs の shell はデフォルトでは pty を使わずに pipe を使って外部コマンドとのプロセス間通信を行ないます。Mac OS X 10.2.x までの OS の pty の実装にバグがあり、(非対話的な) 外部コマン ドの出力の末尾が失われることがあるためです。 # -nw つきで立ちあげると pty 使ってしまうのは、Emacs 側のバグと言っ # て良いでしょう。 # http://members.shaw.ca/akochoi-emacs/031022.html Mac OS X 10.3 で OS の pty のバグは修正されたようです。 Nozomu Ando