strange issue reading /dev/null

Gabor Kovesdan gabor at kovesdan.org
Thu Aug 7 16:58:30 UTC 2008


Sean C. Farley ha scritto:
> On Thu, 7 Aug 2008, Gabor Kovesdan wrote:
>
>> Sean C. Farley ha scritto:
>>> You are testing c which has not been set.  It works OK if you set c
>>> then do the test:
>>>
>>> +       c = fgetc(f);
>>>         if (c != EOF)
>>> -               printf("%c\n", fgetc(f));
>>> +               printf("%c\n", c);
>> Yes, you are right, this is what I meant, I'm just a bit
>> disorganised....
>> Thanks!
>
> You are welcome.
>
> Actually, what I found odd was that the base gcc did not warn about
> using an uninitialized variable using -Wall.
>
> Obviously, test fopen() and fgetc() return codes correctly as others
> have noted.  I just assume you were not in your test program.
Actaually, I wanted to track down why BSD grep echoed the y with the 
diaresis when I executed grep . </dev/null that's why I wrote this test 
program, but I should have taken more care. As a result, I could find 
the bug in grep, it was not enough to check !feof() in the for 
iteration, I needed to check for EOF right after calling fgetc() and 
break if it matched.

Gábor



More information about the freebsd-hackers mailing list