summaryrefslogtreecommitdiff
path: root/userland/libc/stdio/fclose.c
blob: 9e95b0bcd4ca930e6b281ad4105bb3486d3b9bb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

// https://pubs.opengroup.org/onlinepubs/9699919799/functions/fclose.html
// FIXME: Do some actual error checking.
int fclose(FILE *stream) {
  if (stream) {
    if (stream->fflush) {
      stream->fflush(stream);
    }
    close(stream->fd);
    free(stream->cookie);
  }
  free(stream);
  return 0;
}