char *mreadline(FILE *desc) { char *line, *ptr; int i; line=ptr=malloc(81); while(fgets(ptr, 81, desc)) { for(i=0;i<80;i++) { if(ptr[i]=='\n') { ptr[i]='\0'; return line; } } line=realloc(line, i+80); ptr=line+i; } }