ref: b299aa428c810f2b65d47c8e03aad9a5e527ab62
parent: 053b67a55eaad52c8ebd78a1908e2a913bded789
author: eli <eli@singularity>
date: Tue Dec 24 15:55:11 EST 2024
eof error on load
--- a/ann.c
+++ b/ann.c
@@ -638,6 +638,17 @@
return nil;
}
+char*
+sreadline(int fd)
+{
+ char *ret = readline(fd);
+ if (ret == nil) {
+ fprint(2, "error: early end of file\n");
+ exits("eof");
+ }
+ return ret;
+}
+
Ann*
loadann(char *filename)
{
@@ -652,7 +663,7 @@
return ann;
}
- buf = readline(fd);
+ buf = sreadline(fd);
num_layers = atoi(buf);
if (num_layers < 2) {
@@ -662,7 +673,7 @@
layers = calloc(num_layers, sizeof(int));
for (i = 0; i < num_layers; i++) {
- buf = readline(fd);
+ buf = sreadline(fd);
layers[i] = atoi(buf);
}
@@ -671,7 +682,7 @@
W = ann->weights[i];
for (j = 0; j <= W->inputs; j++)
for (k = 0; k < W->outputs; k++) {
- buf = readline(fd);
+ buf = sreadline(fd);
W->values[j][k] = atof(buf);
}
}
--
⑨