This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: how to check stdin == stdout?
- From: Christopher Faylor <cygwin at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 25 Jul 2002 17:04:32 -0400
- Subject: Re: how to check stdin == stdout?
- References: <sa0d6tb8rw7.fsf@glip.premonitia.com>
- Reply-to: cygwin at cygwin dot com
On Thu, Jul 25, 2002 at 04:38:32PM -0400, Sam Steingold wrote:
>To check that stdin and stdout are the same TTYs,
>I use the following code on UNIX (all flavors)
>
>#define stdin_handle 0
>#define stdout_handle 1
>
> struct stat stdin_stat;
> struct stat stdout_stat;
> if ((fstat(stdin_handle,&stdin_stat) >= 0) &&
> (fstat(stdout_handle,&stdout_stat) >= 0))
> if ((stdin_stat.st_dev == stdout_stat.st_dev) &&
> (stdin_stat.st_ino == stdout_stat.st_ino))
> same_tty = true;
>
>it works just fine on all UNIX flavors except for cygwin which has
>different inodes:
>
> stdin_stat.st_ino =3989447614
> stdout_stat.st_ino=3413797845
>
>what's wrong with cygwin?
>or maybe my method is incorrect?
>so how do I check that 0 and 1 are the same tty?
On Cygwin stdin is usually CONIN$ and stdout is usually CONOUT$ .
So, since inodes are based on filenames, they would be different
in this case.
Sorry.
cgf
--
Please do not send me personal email with cygwin questions.
Use the resources at http://cygwin.com/ .
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/