こんにちは、なかむら(う)です。

In message "[ruby-dev:41055] Re: [Bug #3198] O_APPEND for redirect fd is ignored  on windows"
    on Apr.25,2010 13:20:15, <kosaki.motohiro / gmail.com> wrote:
> > Windows7 で、リダイレクト用にファイルをオープンする時
> > O_APPEND を渡しても無視されます。
> 
> 根本原因はなんなのでしょうか?

fdに付随したフラグは子プロセスに受け継がれません。
だってファイルデスクリプタなんて概念Windows自体にはないんだも
ん。


> > +#if defined(_WIN32)
> > +       if (flags & O_APPEND) {
> > +           lseek(fd2, 0, SEEK_END);
> > +       }
> > +#endif
> 
> レビューしました。lseek(SEEK_END)だと他のプロセスと競合した場合に
> 同じ事が起きますが、これは問題ない?

避け得ないからいいんじゃないですかね。


それでは。
-- 
U.Nakamura <usa / garbagecollect.jp>