sl@0: /* REWIND.C sl@0: * sl@0: * Portions Copyright (c) 1990-1999 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: */ sl@0: sl@0: /* sl@0: * Copyright (c) 1990 The Regents of the University of California. sl@0: * All rights reserved. sl@0: * sl@0: * Redistribution and use in source and binary forms are permitted sl@0: * provided that the above copyright notice and this paragraph are sl@0: * duplicated in all such forms and that any documentation, sl@0: * advertising materials, and other materials related to such sl@0: * distribution and use acknowledge that the software was developed sl@0: * by the University of California, Berkeley. The name of the sl@0: * University may not be used to endorse or promote products derived sl@0: * from this software without specific prior written permission. sl@0: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR sl@0: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED sl@0: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. sl@0: */ sl@0: sl@0: /* sl@0: FUNCTION sl@0: <>---reinitialize a file or stream sl@0: sl@0: INDEX sl@0: rewind sl@0: sl@0: ANSI_SYNOPSIS sl@0: #include sl@0: void rewind(FILE *<[fp]>); sl@0: sl@0: TRAD_SYNOPSIS sl@0: #include sl@0: void rewind(<[fp]>) sl@0: FILE *<[fp]>; sl@0: sl@0: DESCRIPTION sl@0: <> returns the file position indicator (if any) for the file sl@0: or stream identified by <[fp]> to the beginning of the file. It also sl@0: clears any error indicator and flushes any pending output. sl@0: sl@0: RETURNS sl@0: <> does not return a result. sl@0: sl@0: PORTABILITY sl@0: ANSI C requires <>. sl@0: sl@0: No supporting OS subroutines are required. sl@0: */ sl@0: sl@0: #include sl@0: /** sl@0: Repositions the file pointer to the beginning of a stream. sl@0: Sets the file pointer associated with the stream sl@0: to the beginning of the file. sl@0: @param Pointer to an open file. sl@0: */ sl@0: EXPORT_C void sl@0: rewind (FILE * fp) sl@0: { sl@0: (void) fflush (fp); sl@0: clearerr (fp); sl@0: if (fp->_seek == NULL) sl@0: return; /* ??? */ sl@0: fp->_r = 0; sl@0: fp->_p = fp->_bf._base; sl@0: (void) (*fp->_seek) (fp->_cookie, (fpos_t) 0, SEEK_SET); sl@0: }