Open System Services System Calls Reference Manual (G06.28+)
spt_readx(2) OSS System Calls Reference Manual
SPT_THREAD_AWARE_PRAGMA_NONBLOCK
has been defined in the following manner
before including spthread.h:
#define SPT_THREAD_AWARE_PRAGMA_NONBLOCK
RETURN VALUES
Upon successful completion, the spt_readx() function returns the number of bytes actually read
and placed into the buffer. The function guarantees to read the number of bytes requested only if
the descriptor references a regular file that has at least that number of bytes left before EOF.
If a regular file does not contain enough bytes to satisfy the read, or if the read otherwise fails,
the value -1 is returned, errno is set to indicate the error, and the contents of the buffer pointed to
by the buffer parameter are indeterminate.
If the file descriptor becomes invalid (is closed by another thread), -1 is returned with an errno
value of [EBADF]. If a signal is received via the pthread_kill() function and is not blocked,
ignored, or handled, -1 is returned with an errno value of [EINTR]..PP
ERRORS
If any of these conditions occurs, the spt_readx() function sets errno to the corresponding
value:
[EAGAIN] The O_NONBLOCK flag is set for the file descriptor, and the process would be
delayed in the read operation.
The O_NONBLOCK flag is set, and no data was available.
[EBADF] The filedes parameter is not a valid file descriptor open for reading.
[ECONNRESET]
One of these conditions occurred:
• The transport-provider process for this socket is no longer available.
• The TCP/IP subsystem for this socket is no longer available.
• The connection was forcibly closed by the peer socket.
The file descriptor specified by the filedes parameter can only be closed.
[EFAULT] The buffer parameter points to a location outside of the allocated address space
of the process.
[EFILEBAD] An attempt was made to read from a Guardian EDIT file (a file in /G with file
code 101) with a corrupted internal structure.
[EINTR] An spt_readx() operation was interrupted by a signal before any data arrived.
[EINVAL] The value of the nbytes parameter is greater than SSIZE_MAX.
[EIO] One of these conditions occurred:
• The process is a member of a background process group attempting to
read from its controlling terminal, the process is ignoring or blocking the
SIGTTIN signal, or the process group is orphaned.
• A physical I/O error occurred. Data might have been lost during a
transfer.
7−260 Hewlett-Packard Company 527186-005