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:
  • An attempt was made to write a file that exceeds the maximum file size.
  • The file is a regular file, and an attempt was made to write at or beyond the offset maximum associated with the corresponding stream.
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:
  • A physical I/O error has occurred.
  • The process is a member of a background process group attempting to perform a write() to its controlling terminal, TOSTOP is set, the process is neither ignoring nor blocking SIGTTOU, and the process group of the process is orphaned.
  • (QNX Neutrino extension) The filesystem resides on a removable media device, and the media has been forcibly removed.
ENOSPC
There was no free space remaining on the device containing the file.
ENOSYS
The underlying device is incapable of seeking.
ENXIO
A request was made of a nonexistent device, or the request was outside the capabilities of the device.
ESPIPE
The file descriptor underlying the stream is associated with a pipe, FIFO, or socket.

Examples:

See fgetpos().

Classification:

ANSI, POSIX 1003.1

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