/* | |
* 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> | |
#include "kinit.h" | |
int getintfile(const char *path, long *val) | |
{ | |
char buffer[64]; | |
char *ep; | |
FILE *f; | |
f = fopen(path, "r"); | |
if (!f) | |
return -1; | |
ep = buffer + fread(buffer, 1, sizeof buffer - 1, f); | |
fclose(f); | |
*ep = '\0'; | |
*val = strtol(buffer, &ep, 0); | |
if (*ep && *ep != '\n') | |
return -1; | |
else | |
return 0; | |
} |