VMS Help  —  TCPIP Services, Programming Interfaces, Socket API Functions, read()
    Reads data from a socket or file.
    The $QIO equivalent is the IO$_READVBLK function.
    Format
      #include  <unixio.h>
      int read  ( int d, void *buffer, int nbytes );

1  –  Arguments

 d
    A descriptor that must refer to a socket or file currently opened
    for reading.
 buffer
    The address of a user-provided buffer in which the input data is
    placed.
 nbytes
    The maximum number of bytes allowed in the read operation.

2  –  Description

    This function reads bytes from a socket or file and places them
    in a user-defined buffer.
    If the end of file is not reached, the read() function returns
    nbytes. If the end of file occurs during the read() function, it
    returns the number of bytes read.
    Upon successful completion, read() returns the number of bytes
    actually read and placed in the buffer.
    Related Functions
    See also socket().

3  –  Return Values

    x                  The number of bytes read and placed in the
                       buffer.
    0                  Peer has closed the connection.
    -1                 Error; errno is set to indicate the error.

4  –  Errors

    EBADF              The socket descriptor is invalid.
    ECONNRESET         A connection was forcibly closed by a peer.
    EFAULT             The data was specified to be received into a
                       nonexistent or protected part of the process
                       address space.
    EINTR              A signal interrupted the read() function
                       before any data was available.
    EINVAL             The MSG_OOB flag is set and no out-of-band
                       data is available.
    ENOBUFS            The system has insufficient resources to
                       complete the call.
    ENOMEM             The system did not have sufficient memory to
                       fulfill the request.
    ENOTCONN           A receive is attempted on a connection-
                       oriented socket that is not connected.
    ENOTSOCK           The socket descriptor is invalid.
    EOPNOTSUPP         The specified flags are not supported for this
                       socket type or protocol.
    EWOULDBLOCK        The socket is marked nonblocking, and no data
                       is waiting to be received.
Close Help