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

SPT_WRITEUPDATEX(2) OSS System Calls Reference Manual
Do not change the contents of the data buffer between the initia-
tion and completion of a nowait write operation. A retry can
copy the data again from the user buffer and cause the wrong
data to be written. Avoid sharing a buffer between a write and
another I/O operation because the contents of the write buffer
might change 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
To enable large data transfers (more than 4096 bytes), you can
use 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. Position-
ing 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
7358 Hewlett-Packard Company 527186-007