]> gcc.gnu.org Git - gcc.git/blame - libio/iofgetpos.c
configure.in (EXEEXT): Define.
[gcc.git] / libio / iofgetpos.c
CommitLineData
dbfcb4be
BK
1/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
2 This file is part of the GNU IO Library.
6599da04 3
dbfcb4be
BK
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License as
6 published by the Free Software Foundation; either version 2, or (at
7 your option) any later version.
6599da04 8
dbfcb4be
BK
9 This library is distributed in the hope that it will be useful, but
10 WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
6599da04 13
dbfcb4be
BK
14 You should have received a copy of the GNU General Public License
15 along with this library; see the file COPYING. If not, write to
16 the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
17 MA 02111-1307, USA.
6599da04 18
dbfcb4be
BK
19 As a special exception, if you link this library with files
20 compiled with a GNU compiler to produce an executable, this does
21 not cause the resulting executable to be covered by the GNU General
22 Public License. This exception does not however invalidate any
23 other reasons why the executable file might be covered by the GNU
24 General Public License. */
6599da04
JM
25
26#include "libioP.h"
27#include <errno.h>
dbfcb4be 28/* ANSI explicitly requires setting errno to a positive value on failure. */
6599da04
JM
29
30int
dbfcb4be
BK
31_IO_fgetpos (fp, posp)
32 _IO_FILE* fp;
33 _IO_fpos_t *posp;
6599da04
JM
34{
35 _IO_fpos_t pos;
dbfcb4be
BK
36 CHECK_FILE (fp, EOF);
37 _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
38 _IO_flockfile (fp);
39 pos = _IO_seekoff (fp, 0, _IO_seek_cur, 0);
40 _IO_cleanup_region_end (1);
6599da04
JM
41 if (pos == _IO_pos_BAD)
42 {
43#ifdef EIO
44 if (errno == 0)
dbfcb4be 45 __set_errno (EIO);
6599da04
JM
46#endif
47 return EOF;
48 }
49 *posp = pos;
50 return 0;
51}
dbfcb4be
BK
52
53#ifdef weak_alias
54weak_alias (_IO_fgetpos, fgetpos)
55#endif
This page took 0.100668 seconds and 5 git commands to generate.