OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [newlib/] [libc/] [stdio/] [fgetpos.c] - Diff between revs 207 and 345

Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 345
/*
/*
 * Copyright (c) 1990 The Regents of the University of California.
 * Copyright (c) 1990 The Regents of the University of California.
 * All rights reserved.
 * All rights reserved.
 *
 *
 * Redistribution and use in source and binary forms are permitted
 * Redistribution and use in source and binary forms are permitted
 * provided that the above copyright notice and this paragraph are
 * provided that the above copyright notice and this paragraph are
 * duplicated in all such forms and that any documentation,
 * duplicated in all such forms and that any documentation,
 * advertising materials, and other materials related to such
 * advertising materials, and other materials related to such
 * distribution and use acknowledge that the software was developed
 * distribution and use acknowledge that the software was developed
 * by the University of California, Berkeley.  The name of the
 * by the University of California, Berkeley.  The name of the
 * University may not be used to endorse or promote products derived
 * University may not be used to endorse or promote products derived
 * from this software without specific prior written permission.
 * from this software without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */
 */
 
 
/*
/*
FUNCTION
FUNCTION
<<fgetpos>>---record position in a stream or file
<<fgetpos>>---record position in a stream or file
 
 
INDEX
INDEX
        fgetpos
        fgetpos
INDEX
INDEX
        _fgetpos_r
        _fgetpos_r
 
 
ANSI_SYNOPSIS
ANSI_SYNOPSIS
        #include <stdio.h>
        #include <stdio.h>
        int fgetpos(FILE *<[fp]>, fpos_t *<[pos]>);
        int fgetpos(FILE *<[fp]>, fpos_t *<[pos]>);
        int _fgetpos_r(struct _reent *<[ptr]>, FILE *<[fp]>, fpos_t *<[pos]>);
        int _fgetpos_r(struct _reent *<[ptr]>, FILE *<[fp]>, fpos_t *<[pos]>);
 
 
TRAD_SYNOPSIS
TRAD_SYNOPSIS
        #include <stdio.h>
        #include <stdio.h>
        int fgetpos(<[fp]>, <[pos]>)
        int fgetpos(<[fp]>, <[pos]>)
        FILE *<[fp]>;
        FILE *<[fp]>;
        fpos_t *<[pos]>;
        fpos_t *<[pos]>;
 
 
        int _fgetpos_r(<[ptr]>, <[fp]>, <[pos]>)
        int _fgetpos_r(<[ptr]>, <[fp]>, <[pos]>)
        struct _reent *<[ptr]>;
        struct _reent *<[ptr]>;
        FILE *<[fp]>;
        FILE *<[fp]>;
        fpos_t *<[pos]>;
        fpos_t *<[pos]>;
 
 
DESCRIPTION
DESCRIPTION
Objects of type <<FILE>> can have a ``position'' that records how much
Objects of type <<FILE>> can have a ``position'' that records how much
of the file your program has already read.  Many of the <<stdio>> functions
of the file your program has already read.  Many of the <<stdio>> functions
depend on this position, and many change it as a side effect.
depend on this position, and many change it as a side effect.
 
 
You can use <<fgetpos>> to report on the current position for a file
You can use <<fgetpos>> to report on the current position for a file
identified by <[fp]>; <<fgetpos>> will write a value
identified by <[fp]>; <<fgetpos>> will write a value
representing that position at <<*<[pos]>>>.  Later, you can
representing that position at <<*<[pos]>>>.  Later, you can
use this value with <<fsetpos>> to return the file to this
use this value with <<fsetpos>> to return the file to this
position.
position.
 
 
In the current implementation, <<fgetpos>> simply uses a character
In the current implementation, <<fgetpos>> simply uses a character
count to represent the file position; this is the same number that
count to represent the file position; this is the same number that
would be returned by <<ftell>>.
would be returned by <<ftell>>.
 
 
RETURNS
RETURNS
<<fgetpos>> returns <<0>> when successful.  If <<fgetpos>> fails, the
<<fgetpos>> returns <<0>> when successful.  If <<fgetpos>> fails, the
result is <<1>>.  Failure occurs on streams that do not support
result is <<1>>.  Failure occurs on streams that do not support
positioning; the global <<errno>> indicates this condition with the
positioning; the global <<errno>> indicates this condition with the
value <<ESPIPE>>.
value <<ESPIPE>>.
 
 
PORTABILITY
PORTABILITY
<<fgetpos>> is required by the ANSI C standard, but the meaning of the
<<fgetpos>> is required by the ANSI C standard, but the meaning of the
value it records is not specified beyond requiring that it be
value it records is not specified beyond requiring that it be
acceptable as an argument to <<fsetpos>>.  In particular, other
acceptable as an argument to <<fsetpos>>.  In particular, other
conforming C implementations may return a different result from
conforming C implementations may return a different result from
<<ftell>> than what <<fgetpos>> writes at <<*<[pos]>>>.
<<ftell>> than what <<fgetpos>> writes at <<*<[pos]>>>.
 
 
No supporting OS subroutines are required.
No supporting OS subroutines are required.
*/
*/
 
 
#include <_ansi.h>
#include <_ansi.h>
#include <reent.h>
#include <reent.h>
#include <stdio.h>
#include <stdio.h>
 
 
int
int
_DEFUN(_fgetpos_r, (ptr, fp, pos),
_DEFUN(_fgetpos_r, (ptr, fp, pos),
       struct _reent * ptr _AND
       struct _reent * ptr _AND
       FILE * fp           _AND
       FILE * fp           _AND
       _fpos_t * pos)
       _fpos_t * pos)
{
{
  *pos = _ftell_r (ptr, fp);
  *pos = _ftell_r (ptr, fp);
 
 
  if (*pos != -1)
  if (*pos != -1)
    {
    {
      return 0;
      return 0;
    }
    }
  return 1;
  return 1;
}
}
 
 
#ifndef _REENT_ONLY
#ifndef _REENT_ONLY
 
 
int
int
_DEFUN(fgetpos, (fp, pos),
_DEFUN(fgetpos, (fp, pos),
       FILE * fp _AND
       FILE * fp _AND
       _fpos_t * pos)
       _fpos_t * pos)
{
{
  return _fgetpos_r (_REENT, fp, pos);
  return _fgetpos_r (_REENT, fp, pos);
}
}
 
 
#endif /* !_REENT_ONLY */
#endif /* !_REENT_ONLY */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.