initial
This commit is contained in:
24
farm/program.c
Normal file
24
farm/program.c
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "program.h"
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
struct Program* load_program(char* filename) {
|
||||
FILE* f = fopen(filename, "r");
|
||||
if (f == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
int num_instructions;
|
||||
int num_read = fread(&num_instructions, 4, 1, f);
|
||||
if (num_read != 1) {
|
||||
return NULL;
|
||||
}
|
||||
int program_size = 4 + num_instructions * 4;
|
||||
struct Program* program = (struct Program *)malloc(program_size);
|
||||
program->num_instructions = num_instructions;
|
||||
num_read = fread(&program->instructions, 1, program_size-4, f);
|
||||
if (num_read != program_size-4) {
|
||||
return NULL;
|
||||
}
|
||||
fclose(f);
|
||||
return program;
|
||||
}
|
||||
Reference in New Issue
Block a user