Read /dev/null differs from POSIX
Mark Murray
markm at FreeBSD.ORG
Sat May 21 13:15:08 PDT 2005
Steve Kargl writes:
> >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
... abuses fread(3) return values.
Try this:
[grovel] ~ 09:10 pm $ cat test.c
#include <stdio.h>
int
main(void)
{
int i, j;
FILE *fp;
j = -1;
fp = fopen("/dev/null", "r");
while((i = fread(&j, sizeof(int), 1, fp))) {
printf("i = %d\nj = %d\n", i, j);
if (feof(fp))
break;
}
printf("AT END\ni = %d\nj = %d\n", i, j);
return 0;
}
[grovel] ~ 09:10 pm $ gcc -Wall test.c -o test
[grovel] ~ 09:11 pm $ ./test
AT END
i = 0
j = -1
[grovel] ~ 09:11 pm $
M
--
Mark Murray
iumop ap!sdn w,I idlaH
More information about the freebsd-standards
mailing list