Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)
ftruncate64(2) OSS System Calls Reference Manual
Use From a Threaded Application
The thread-aware ftruncate64() function offers an alternative to the O_SYNC file status flag.
Using thread-aware ftruncate64() gives a threaded application control over the performance
trade offs involved in guaranteeing data integrity. OSS file-system caching can be used for files
that are protected only by thread-aware ftruncate64() function calls.
If this function must wait for an I/O operation to complete on an open file, this function blocks
the thread (instead of the entire process) that called it, while it waits for the I/O operation to com-
plete.
NOTES
To use the ftruncate64() functionality in a threaded application that uses the Standard POSIX
Threads library, see spt_ftruncate64z(2).
To use this function in a threaded application that uses the POSIX User Thread Model library on
systems running H06.21 or later RVUs or J06.10 or later RVUs, you must perform all of the fol-
lowing tasks to make the function thread-aware in a multi-threaded application:
• Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
• Link the application to the zputdll library (/G/system/zdllnnn/zputdll).
On systems running H06.24 or later H-series RVUs or J06.13 or later J-series RVUs, you can use
this function with 32-bit or 64-bit OSS applications.
To use this function in a 32-bit threaded application on systems running H06.24 or later RVUs or
J06.13 or later RVUs, perform the same tasks (described above) used to make the function
thread-aware in a multi-threaded application on systems running H06.21/J06.10 or later RVUs.
To use this function in a 64-bit threaded application on systems running H06.24 or later RVUs or
J06.13 or later RVUs, you must perform all of the following tasks to make the function thread-
aware in a multi-threaded application:
• Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
• Compile the application using the -Wlp64 compiler command option.
• Link the application to the yputdll library (/G/system/zdllnnn/yputdll).
For detailed information about writing multi-threaded and 64-bit applications for the Open Sys-
tem Services environment, see the Open System Services Programmer’s Guide.
RETURN VALUES
Upon successful completion, the value 0 (zero) is returned. Otherwise, the value -1 is returned
and errno is set to indicate the error.
ERRORS
If any of these conditions occurs, the ftruncate64() function sets errno to the corresponding
value:
[EALREADY] Operation already in progress. An I/O operation started by a thread-aware func-
tion is in progress on a regular file and a function that is process-blocking for
regular files attempts to begin an I/O operation on the same open file.
If the ftruncate64( ) function is thread-aware, the [EALREADY] value is not
returned.
[EBADF] The filedes parameter does not specify a valid file descriptor open for writing.
3−68 Hewlett-Packard Company 527186-023