Read /dev/null differs from POSIX
Bob Bishop
rb at gid.co.uk
Sat May 21 13:14:48 PDT 2005
At 20:36 21/05/2005, Steve Kargl wrote:
> >From http://www.opengroup.org/onlinepubs/009695399/toc.htm
>
> /dev/null -- An infinite data source and data sink. Data
> written to /dev/null shall be discarded. Reads from
> /dev/null shall always return end-of-file (EOF).
>
>This program
>
> #include <stdio.h>
> int main(void) {
> int i=0,j;
> FILE *fp;
> fp = fopen("/dev/null", "r");
> while(fread(&j, sizeof(int), 1, fp) != 1) {
> i++;
> if (i == 5) break;
> }
> printf("i = %d\n", i);
> if (j == EOF)
> printf("EOF\n");
> else
> printf("j = %d\n", j);
>}
>
>prints
>
>i = 5
>j = 1
>
>Is this historic BSD defacto behavior?
When fread hits EOF, it doesn't write to j.
--
Bob Bishop +44 (0)118 940 1243
rb at gid.co.uk fax +44 (0)118 940 1295
More information about the freebsd-standards
mailing list