Open System Services System Calls Reference Manual (G06.28+)

System Functions (s and S) SPT_WRITEUPDATEX(2)
the initiation and completion of a nowait write operation. This
is because a retry can copy the data again from the user buffer
and cause the wrong data to be written. You should avoid shar-
ing a buffer between a write and another I/O operation because
this creates the possibility of changing the contents of the write
buffer before the write is completed.
Invalid write operations to queue files
Attempts to perform SPT_WRITEUPDATEX() operations are
rejected with a Guardian le-system error 2.
Disk File Considerations
Large data transfers
Large data transfers (more than 4096 bytes), can be enabled by
using SPT_SETMODE() function 141. See the description of
SETMODE functions in the Guardian Procedure Calls Refer-
ence Manual.
Random processing and SPT_WRITEUPDATEX()
For key-sequenced, relative, and entry-sequenced les, random
processing implies that a designated record must exist. This
means that positioning for SPT_WRITEUPDATEX() is always
to the record described by the exact value of the current key and
current-key specier. If such a record does not exist, the call to
SPT_WRITEUPDATEX() is rejected with Guardian le-
system error 11 (record does not exist).
File is locked
If a call to SPT_WRITEUPDATEX() is made and the le is
locked through a le number other than that supplied in the call,
the call is rejected with Guardian le-system error 73 (file is
locked).
When the just-read record is updated
A call to SPT_WRITEUPDATEX() following a call to
SPT_READX( ), without intermediate positioning, updates the
record just read.
Unstructured files
Transferring disk file data
If the SPT_WRITEUPDATEX() call is to an
unstructured disk le, data is transferred to the
record location specied by the current-record
pointer.
File pointers after a successful call
After a successful SPT_WRITEUPDATEX()
call to an unstructured le, the current-record
and next-record pointers are unchanged.
Number of bytes written
If the unstructured le is created with the odd
unstructured attribute (also known as
ODDUNSTR) set, the number of bytes written is
exactly the number specied in write_count.If
527186-005 Hewlett-Packard Company 7345