extern int fclose (/*@open@*/ FILE *stream) 
   /*:checkerror EOF@*/ /* The fclose function returns zero if the
			   stream was successfully closed or EOF if any errors were detected. */
   /*@ensures closed stream@*/ ;

/*@open@*/ FILE *fopen (const char *filename, const char *mode);
/*@open@*/ FILE *fdopen (int fildes, const char *mode);

   /*
   ** File modes:
   **       "rb"	read
   **       "wb"        create, truncate, write
   **       "ab"        create, write, append
   **       "rb+"	read, write
   **       "wb+"	create, truncate, read, write
   **       "ab+"	create, read, write, append
   */

extern /*@open@*/ FILE *freopen (char *filename, char *mode, /*@anyopen@*/ FILE *stream) /*@ensures open stream@*/ ;

extern /*@null@*/ char *
  fgets (/*@returned@*/ /*@out@*/ char *s, int n, /*@open@*/ FILE *stream)
  /*@modifies fileSystem, *s, *stream, errno@*/ ;

/*
fgetc
fputc

fseek
ftell 
*/

int ferror (FILE *stream) ;
int feof (FILE *stream) ;
void clearerr (FILE *stream) ;
