+ {
+ char byte;
+ /* Trying to operate on a pipe must evoke failure with ESPIPE.
+ This assumes that stdin is a pipe, and hence not seekable. */
+ ASSERT (pread (STDIN_FILENO, &byte, 1, 1) == -1);
+ ASSERT (errno == ESPIPE);
+ }
+
+ /* Test behaviour for invalid file descriptors. */
+ {
+ char byte;
+ errno = 0;
+ ASSERT (pread (-1, &byte, 1, 0) == -1);
+ ASSERT (errno == EBADF);
+ }
+ {
+ char byte;
+ close (99);
+ errno = 0;
+ ASSERT (pread (99, &byte, 1, 0) == -1);
+ ASSERT (errno == EBADF);
+ }
+