psrdada-sys 0.3.0

Bindgen wrappers for psrdada
Documentation
#include "futils.h"

#include <stdio.h>
#include <string.h>
#include <errno.h>

long fileread (const char* filename, char* buffer, unsigned bufsz)
{
  FILE* fptr = 0;
  long fsize = filesize (filename);

  if (fsize < 0) {
    fprintf (stderr, "fileread: filesize(%s) %s\n", filename, strerror(errno));
    return -1;
  }

  if (fsize > bufsz) {
    fprintf (stderr, "fileread: filesize=%ld > bufsize=%u\n", fsize, bufsz);
    return -1;
  }

  fptr = fopen (filename, "r");
  if (!fptr) {
    fprintf (stderr, "fileread: fopen(%s) %s\n", filename, strerror(errno));
    return -1;
  }

  if (fread (buffer, fsize, 1, fptr) != 1) {
    perror ("fileread: fread");
    fclose (fptr);
    return -1;
  }

  fclose (fptr);

  memset (buffer + fsize, '\0', bufsz - fsize);

  return 0;
}