First you should check the return value of fopen():
FILE* fp = fopen(argv[1], "r"); // STEP 2: open the file handler
if(fp == 0) {
perror("fopen");
exit(1);
}
Second, I looked at the header file and I think kseg_init takes an fd not a FILE *. You can get an fd from a FILE * with fileno().
kseq_t *seq = kseq_init(fp); // STEP 3: initialize seq
Should be:
kseq_t *seq = kseq_init(fileno(fp)); // STEP 3: initialize seq