Mail Archives: cygwin/2005/08/18/16:19:00
On Fri, Aug 19, 2005 at 04:51:12AM +0900, June Kim wrote:
>I run cygwin on Windows XP through rxvt. When I compile and run the
>following code:
>
>#include <stdio.h>
>
>main()
>{
> printf("isatty=%d\n",isatty(fileno(stdin)));
> char *s=(char *)malloc(1024+1);
> char *s2=(char *)malloc(1024+1);
>
> fgets(s,1024,stdin);
> free(s);
> printf("stdio = %ld\n", ftell(stdin));
>
> fgets(s2,1024,stdin);
> free(s2);
> printf("stdio = %ld\n", ftell(stdin));
>
>}
>
>I input "abcdefg" followed by a nl and then "abcdefg" followed by a nl.
>
>$ gcc test1.c
>
>bash ~
>$ ./a
>isatty=1
>abcdefg
>stdio = 0
>abcdefg
>stdio = 8
>
>As you see, the first ftell's result is wrong. The first fgets is
>ignored.
>
>Interestingly, when I run cygwin without rxvt(just running bash.exe
>from the dos command line) with CYGWIN=notty, the ftell always returns
>-1. If CYGWIN=tty, then ftell behaves as in rxvt ; it returns 0 first
>and then behaves correct.
>
>Am I missing something?
I've fixed cygwin so that it consistently returns -1 when an ftell is
attempted on a tty device, which is the correct behavior.
Thanks for the test case.
cgf
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -