[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: lua bug - loadfile gets stdin confused
- From: "David Burgess" <dburgess@...>
- Date: Thu, 19 Apr 2007 10:02:16 +1000
I think it can be done reliably under wIndows. But I guess this is
academic if it cant be done under unix.
BTB. I was answering the question of how to tell if stdin/stdout/stderr
has been closed (or never opened).
I think I preferred the Lua 5.0 behaviour.
On 4/19/07, Luiz Henrique de Figueiredo <email@example.com> wrote:
> For windows:
> _get_osfhandle(_fileno(stdout)) > 0
> means valid.
Unix has fileno, but if stdio is recycling FILE* then it probably is also
recycling filenos. So opening a file right after closing stdin will probably
create a file whose fileno is 0. That's the whole problem. As far I can see,
there is no reliable way to tell whether a FILE* or fileno corresponds to
the original stdin that was open when the process started.