/*
 * getintfile.c
 *
 * Open a file and read it, assuming it contains a single long value.
 * Return 0 if we read a valid value, otherwise -1.
 */

#include <stdio.h>
#include <stdlib.h>

int getintfile(const char *path, long *val)
{
	char buffer[64];
	char *ep;
	FILE *f;

	f = fopen(path, "r");
	if ( !f )
		return -1;

	memset(buffer, 0, sizeof buffer);
	fread(buffer, 1, sizeof buffer, f);
	fclose(f);

	*val = strtol(buffer, &ep, 0);
	if ( *ep && *ep != '\n' )
		return -1;
	else
		return 0;
}


	
