miller/c/input/file_reader_stdio.c
2015-06-15 22:54:17 -04:00

30 lines
694 B
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include "lib/mlrutil.h"
#include "lib/mlr_globals.h"
#include "file_reader_stdio.h"
void* file_reader_stdio_vopen(char* filename) {
FILE* input_stream = stdin;
if (!streq(filename, "-")) {
input_stream = fopen(filename, "r");
if (input_stream == NULL) {
fprintf(stderr, "%s: Couldn't open \"%s\" for read.\n", MLR_GLOBALS.argv0, filename);
perror(filename);
return 0;
}
}
return input_stream;
}
void file_reader_stdio_vclose(void* pvhandle) {
FILE* input_stream = pvhandle;
if (input_stream != stdin)
fclose(input_stream);
}