strange issue reading /dev/null

Gabor Kovesdan gabor at kovesdan.org
Thu Aug 7 15:04:33 UTC 2008


Hello,

I'm wondering why fgetc() returns 0xff if called with /dev/null:

#include <stdio.h>
#include <stdlib.h>

int
main(void)
{
        int      c;
        FILE    *f;

        f = fopen("/dev/null", "r");

        if (c != EOF)
                printf("%c\n", fgetc(f));
}

 > gcc foo.c
 > ./a.out
ÿ

This causes a bug in BSD grep as /dev/null is not distinguished from 
ordinary files in the code, thus I was expecting it just returned EOF, 
but in reality this is not the case. How such cases should be handled?

Thanks in advance,
Gábor


More information about the freebsd-hackers mailing list