NAME
    fseek - set a file position

SYNOPSIS
    fseek(fd, offset [, whence])

TYPES
    fd          open file stream
    pos         integer
    whence      0 (beginning), 1 (current), or 2 (end): defaulting to 0

    return      null or error value

DESCRIPTION
    This function sets the file position indicator for the stream by
    adding offset to zero, the current value, or the size of the
    file, according as whence is 0, 1 or 2.  The effect is equivalent to
    moving the signed distance offset from the beginning (0), the current
    position (1), or the end of the file (2).

    The function also clears the end-of-file flag and flushes any
    buffered data waiting to be output to the stream.

    An implementation-defined error is likely to occur if the effect
    would be to seek to a negative file position.  On some some systems,
    the file position will be set to end-of-file.

    The range of allowed pos values depends on the system minimum and
    maximum values for an off_t.  For calc, due to the need to negate
    a numeric value in some cases, the minimum off_t is one more than
    the system minimum.

    The file position indicator may have a value greater than the file
    size.  If characters are then written to the file, the gap is
    filled by null ('\0') characters.

EXAMPLE
    ; fd = fopen("/tmp/curds", "w")
    ; fputs(fd, "0123456789abcdef")
    ; freopen(fd, "r")
    ; fsize(fd)
        16
    ; fseek(fd, 5)
    ; fgets(fd)
        "56789abcdef"
    ; fseek(fd, 0)
    ; fscanf(fd, "%*5c")
        0
    ; fseek(fd, 5, 1)
    ; fgets(fd)
        "abcdef"
    ; ftell(fd)
        16
    ; fseek(fd, -5, 2)
    ; fgets(fd)
        "bcdef"
    ; fseek(fd, -2)
        System error 22
    ; ftell(fd)
        16

    The results for the last four lines may be different for different systems.

LIMITS
    OFF_T_MIN+1 <= pos <= OFF_T_MAX

    OFF_T_MIN is system's minimum value for an off_t value.
    OFF_T_MAX is system's maximum value for an off_t value.

LINK LIBRARY
    none

SEE ALSO
    ftell, fgetpos, fsetpos, rewind, strerror

## Copyright (C) 1999,2026  Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL.  You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
##
## Under source code control:   1995/03/04 11:33:20
## File existed as early as:    1995
##
## chongo <was here> /\oo/\     http://www.isthe.com/chongo/
## Share and enjoy!  :-)        http://www.isthe.com/chongo/tech/comp/calc/
