Man Linux: Main Page and Category List

NAME

       fsetpos - set current file position

SYNOPSIS

       #include <stdio.h>

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

DESCRIPTION

       The fsetpos() function shall set the file position and state indicators
       for the stream pointed to by stream  according  to  the  value  of  the
       object pointed to by pos, which the application shall ensure is a value
       obtained from an earlier call to fgetpos() on the  same  stream.  If  a
       read or write error occurs, the error indicator for the stream shall be
       set and fsetpos() fails.

       A successful call to the fsetpos() function shall clear the end-of-file
       indicator  for  the stream and undo any effects of ungetc() on the same
       stream. After an fsetpos() call, the next operation on an update stream
       may be either input or output.

       The  behavior of fsetpos() on devices which are incapable of seeking is
       implementation-defined. The value of the file  offset  associated  with
       such a device is undefined.

RETURN VALUE

       The  fsetpos()  function  shall  return 0 if it succeeds; otherwise, it
       shall return a non-zero value and set errno to indicate the error.

ERRORS

       The  fsetpos()  function  shall  fail  if,     either  the  stream   is
       unbuffered or the stream’s buffer needed to be flushed, and the call to
       fsetpos() causes an underlying lseek() or write() to be invoked, and:

       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 is not open for
              writing or the stream’s buffer needed to be flushed and the file
              is not open.

       EFBIG  An  attempt  was  made  to write a file that exceeds the maximum
              file size.

       EFBIG  An attempt was made to write a file that  exceeds  the  process’
              file size limit.

       EFBIG  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, and no data was transferred.

       EIO    A physical I/O error has occurred, or 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.  This error  may  also  be  returned  under
              implementation-defined conditions.

       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.

       EPIPE  The  file descriptor underlying stream is associated with a pipe
              or FIFO.

       EPIPE  An attempt was made to write to a pipe or FIFO that is not  open
              for  reading by any process; a SIGPIPE signal shall also be sent
              to the thread.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       fopen() , ftell() , lseek() , rewind() , ungetc() , write() , the  Base
       Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .