Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
READ(2)                       System Calls Manual                      READ(2)

NAME
       read, pread - read input

SYNOPSIS
       #include <sys/types.h>
       #include <unistd.h>

       ssize_t read(int d, void *buf, size_t nbytes)
       ssize_t pread(int d, void *buf, size_t nbytes, off_t offset)

DESCRIPTION
       Read  attempts to read nbytes of data from the object referenced by the
       descriptor d into the buffer pointed to by buf.

       On objects capable of seeking, the read starts at a position  given  by
       the  pointer  associated with d (see lseek(2)).  Upon return from read,
       the pointer is incremented by the number of bytes actually read.

       Objects that are not capable of seeking always read  from  the  current
       position.   The  value of the pointer associated with such an object is
       undefined.

       Upon successful completion, read return the number  of  bytes  actually
       read  and  placed  in  the  buffer.   The system guarantees to read the
       number of bytes requested if the descriptor references  a  normal  file
       that  has  that many bytes left before the end-of-file, but in no other
       case.

       If the returned value is 0, then end-of-file has been reached.

       The pread system call performs the same functions, but reads  from  the
       specified position in the file without modifying the file pointer.

RETURN VALUE
       If   successful,  the  number  of  bytes  actually  read  is  returned.
       Otherwise, a -1 is returned and the global variable  errno  is  set  to
       indicate the error.

ERRORS
       Read and pread will fail if one or more of the following are true:

       [EBADF]        D is not a valid descriptor open for reading.

       [EFAULT]       Buf points outside the allocated address space.

       [EIO]          An  I/O  error  occurred  while  reading  from  the file
                      system.

       [EINTR]        A read from a slow device  was  interrupted  before  any
                      data arrived by the delivery of a signal.

       [EAGAIN]       The  file  was  marked for non-blocking I/O, and no data
                      were ready to be read.

       The pread system call may also return any of the lseek errors.

SEE ALSO
       dup(2), fcntl(2), open(2), pipe(2), lseek(2), write(2).

NOTES
       pread is currently implemented as  a  library  function  instead  of  a
       system call.

4th Berkeley Distribution        May 23, 1986                          READ(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO | NOTES