Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

pwrite(), pwrite64()

Write into a file without changing the file pointer

Synopsis:

#include <unistd.h>

ssize_t pwrite( int filedes,
                const void* buff,
                size_t nbytes,
                off_t offset );

ssize_t pwrite64( int filedes,
                  const void* buff,
                  size_t nbytes,
                  off64_t offset );

Arguments:

filedes
The file descriptor for the file you want to write in.
buff
A pointer to a buffer that contains the data you want to write.
nbytes
The number of bytes to write.
offset
The desired position inside the file.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pwrite() function performs the same action as write(), except that it writes into a given position without changing the file pointer.

The pwrite64() function is a 64-bit version of pwrite().

Returns:

The number of bytes actually written, or -1 if an error occurred (errno is set).

Errors:

EAGAIN
The O_NONBLOCK flag is set for the file descriptor, and the process would be delayed in the write operation.
EBADF
The file descriptor, fildes, isn't a valid file descriptor open for writing.
EFBIG
File is too big.
EINTR
The write operation was interrupted by a signal, and either no data was transferred, or the resource manager responsible for that file doesn't report partial transfers.
EIO
A physical I/O error occurred (for example, a bad block on a disk). The precise meaning is device-dependent.
ENOSPC
There's no free space remaining on the device containing the file.
ENOSYS
The pwrite() function isn't implemented for the filesystem specified by filedes.
EPIPE
An attempt was made to write to a pipe (or FIFO) that isn't open for reading by any process. A SIGPIPE signal is also sent to the process.

Classification:

pwrite() is POSIX 1003.1 XSI; pwrite64() is Large-file support

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

close(), creat(), dup(), dup2(), errno, fcntl(), lseek(), open(), pipe(), pread(), read(), readv(), select(), write(), writev()