har *get_next_line(FILE * file) { int index = 0; int bufsize = BUFSIZE; signed char temp; char *buffer = NULL; buffer = (char *) malloc(bufsize); if (!buffer) return NULL; while ((temp = fgetc(file)) != '\n') { if (feof(file)) return NULL; if (index == bufsize) { bufsize += BUFSIZE; buffer = (char *) realloc(buffer, bufsize); } buffer[index++] = temp; } if (index == bufsize) buffer = (char *) realloc(buffer, ++bufsize); buffer[index] = '\0'; buffer = (char *) realloc(buffer, strlen(buffer) ? strlen(buffer) : 1); return buffer; }