fsetpos()

Set the current position of a file

Synopsis:

#include <stdio.h>

int fsetpos( FILE* fp, 
             const fpos_t* pos );

Arguments:

fp
The stream whose position you want to set.
pos
A pointer to a fpos_t object that specifies the new position for the stream. You must have initialized the value pointed to by pos by calling fgetpos() on the same file.

Library:

libc

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

Description:

The fsetpos() function sets the current position of the stream specified by fp according to the value of the fpos_t object pointed to by pos.

Returns:

0 for success, or nonzero if an error occurs (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 underlying the stream file isn't open for writing, or the stream's buffer needed to be flushed and the file isn't open.
EFBIG
One of the following:
EINTR
The write operation was terminated due to the receipt of a signal; no data was transferred.
EINVAL
The whence argument is invalid. The resulting file-position indicator would be set to a negative value.
EIO
One of the following:
ENOSPC
There was no free space remaining on the device containing the file.
ENXIO
A request was made of a nonexistent device, or the request was outside the capabilities of the device.
ESPIPE
The file descriptor underlying stream is associated with a pipe or FIFO.
ENOSYS
The underlying device is incapable of seeking.

Examples:

See fgetpos().

Classification:

ANSI, POSIX 1003.1

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

See also:

errno, fgetpos(), fopen(), fseek(), ftell()