### 5.4 `fclose`—close a file ¶

Synopsis

    #include <stdio.h>
    int fclose(FILE *fp);
    int _fclose_r(struct _reent *reent, FILE *fp);

Description
If the file or stream identified by fp is open, `fclose` closes it, after first ensuring that any pending data is written (by calling `fflush(fp)`).

The alternate function `_fclose_r` is a reentrant version. The extra argument reent is a pointer to a reentrancy structure.

Returns
`fclose` returns `0` if successful (including when fp is `NULL` or not an open file); otherwise, it returns `EOF`.

Portability
`fclose` is required by ANSI C.

Required OS subroutines: `close`, `fstat`, `isatty`, `lseek`, `read`, `sbrk`, `write`.