At the moment my program has no problem reading in a .txt file, but my program needs to read in a text file with a different file extension (.emu is the requirement). When simply changing the same file’s extension to .emu, the variable ‘file’ is NULL and therefore the file isn’t opened, can anyone help?
Had a little look around and haven’t been able to find a solution so any help is much appreciated
here’s the source code:
void handleArgs (const char *filename, int trace, int before, int after) {
FILE *file = fopen(filename, "r");
char *address = malloc(MAX_ADD_LENGTH * sizeof(char));
char *instruction = malloc(MAX_INS_LENGTH * sizeof(char));
long int addressDecoded;
if (file == NULL || file == 0) {
fprintf(stderr, "Error: Could not open file");
}
else {
if (ferror(file) == 0) {
while (fscanf(file, "%s %s", address, instruction) != EOF) {
if (strlen(address) == 8 && strlen(instruction) == 8) {
addressDecoded = strtol(address, NULL, 16);
printf("%ld\n", addressDecoded);
//instruction = decodeInstruction(instruction);
}
else {
fprintf(stderr, "Error: particular line is of wrong length");
}
}
}
}
fclose(file);
}
argument ‘filename’ when executing is simply ‘/foopath/test.emu’
There’s nothing special to C about the file extension. Reread your code for simple errors like changing the filename in one place, but not the other. If you’re passing in the filename, pass the whole name, not just the part to the left of the period.