I am still working on the lovely trie project, now I am working on file input that will be passed into the trie. I receive the following errors when I compile this code.

$ make
gcc -Wall -g   -c -o spellback.o spellback.c
spellback.c: In function ‘main’:
spellback.c:36: warning: implicit declaration of function ‘open’
spellback.c:36: warning: assignment makes pointer from integer without a cast
spellback.c:16: warning: unused variable ‘line’
gcc -Wall -g -o simplespell node.o spellback.o

I would like to be able to remove these warnings but the more pressing issue is this bus error:

$ ./simplespell -w filer.c
Opening default file
Closed default file
Opening selected file
Bus error

And of course here is the source code for this:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdbool.h>
#include "node.h"

#define MAXSIZE 2048

int main(int argc, char *argv[]){
	int ck;
	ck = argc;
	//printf("%d\n", ck);
	FILE *fp;
	char line [MAXSIZE];
	if(ck == 1){
		printf("Opening default file\n");
		fp = fopen(".WORDS", "r");
		printf("Closed default file\n");
	if(ck == 2){
		printf("Invalid Input\n");
	if(ck == 3){
		printf("Opening default file\n");
		fp = fopen(".WORDS", "r");
		//point fp to next file
		printf("Closed default file\n");
		fp = open(argv[2], "r");
		printf("Opening selected file\n");
		printf("Closed selected file\n");
	return 0;

Any idea what is causing this bus error? Also the c file does exist and I do have read permissions. As does .WORDS .

on 36. line you have fp = open(argv[2], "r"); it should be fp = fopen(argv[2], "r");
Else you have declared variable char line[MAXSIZE]; but you don't use it in your code.

great help on a simple problem.

All good, I realized the one about the line, it will get used later so I am ok with that warning for now. Thanks again for pointing out a typeo :) , I need to be a bit more careful it seems.

This question has already been answered. Start a new discussion instead.