> signed char *line[BUFSIZ];
You want an array of char, not an array of char pointers.
So
signed char line[BUFSIZ];

> if ( sscanf(line, "%*s %*s %*s %*s %s %5s %*s %*s %*s %s", &col5, &col6, &col10) == 3 )
1. Drop the & from all the variables. An array name is already a pointer to a char, so nothing is gained by using &.
If the variables were really pointers to begin with, then using & would be very wrong indeed.
2. Why %5s when the string itself is already 6 chars long? All it does is make it harder - the buffer allocated is big enough.

> if ( col6x == col6 )
Lookup strcmp()