This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: how to check stdin == stdout?

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.


Please do not send me personal email with cygwin questions.
Use the resources at .

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]