Open System Services System Calls Reference Manual (G06.28+, H06.05+)
System Functions (s and S) spt_readvx(2)
— If no process has the pipe open for writing, the spt_readvx() function returns the
value 0 (zero) to indicate EOF.
— If some process has the pipe open for writing:
— If the O_NONBLOCK flag is not set, the spt_readvx() function blocks
until either some data is written or the pipe is closed by all processes that
had opened the pipe for writing.
— If the O_NONBLOCK flag is set, the spt_readvx() function returns the
value -1 and sets errno to [EAGAIN].
When attempting to read from a socket and no data is currently available:
— If the O_NONBLOCK flag is not set, the spt_readvx() function blocks until
data becomes available.
— If the O_NONBLOCK flag is set, the spt_readvx() function returns the value -1
and sets errno to [EAGAIN]. The O_NONBLOCK flag has no effect if data is
available.
When attempting to read from a character special file that supports nonblocking reads,
such as a terminal, and no data is currently available:
— If the O_NONBLOCK flag is not set, the spt_readvx() function blocks until
data becomes available.
— If the O_NONBLOCK flag is set, the spt_readvx() function returns the value -1
and sets errno to [EAGAIN]. The O_NONBLOCK flag has no effect if data is
available.
If it is interrupted by a signal before it reads any data, the spt_readvx() function returns
the value -1 with errno set to [EINTR]. If it is interrupted by a signal after it has suc-
cessfully read some data, the spt_readvx() function returns the number of bytes read.
When reading from a device special file, the return of EOF has no effect on subsequent
calls to the spt_readvx() function. When modem disconnect is detected, an EOF is
returned. The errno variable is not set to [EIO].
Upon successful completion, the spt_readvx() function marks the st_atime field of the
file for update.
The iov_count parameter specifies the number of entries (buffers) in the iovec structure
pointed to by the iov parameter. Each iovec entry specifies the base address and length
of an area in memory where data should be placed. The spt_readvx() function always
fills a buffer completely before proceeding to the next.
The iovec structure is defined in the sys/uio.h header file and contains entries with these
members:
caddr_t iov_base;
int iov_len;
Use on Guardian Objects
After a call to the fork(), tdm_fork( ),ortdm_spawn( ) function, the initial position within a
Guardian EDIT file (a file in /G with file code 101) is the same for both parent and child
processes. However, the position is not shared; moving the current position from within one pro-
cess does not move it in the other process.
527186-007 Hewlett-Packard Company 7−253