void _test_read_write(char *seq, char mode[2]){ FILE *fh; size_t seq_len = strlen(seq); fh = fopen(TEST_FILE, mode); size_t file_pos = ftell(fh); size_t pos = fencode(fh, (unsigned char *)seq); TEST_OK((seq_len + 1) / 2 == pos - file_pos); fflush(fh); fclose(fh); fh = fopen(TEST_FILE, "rb"); //printf("%i:%i\n", file_pos, pos); char *read_seq = (char *)fdecode(fh, file_pos, pos); //printf("%s, %s\n", seq, read_seq); TEST_OK(!strcmp(seq, read_seq)); free(read_seq); fclose(fh); }
int main(int argc, char *argv[]) { FILE *in, *out; if(strstr(argv[0], "dec") != 0) mode = DECODE; else mode = ENCODE; if ( mode == ENCODE ) { in = stdin; out = stdout; } else { in = stdin; out = stdout; } if ( argc < 2 ) mode == ENCODE ? fencode(in, out) : fdecode(in, out); return 0; }