Randi Botse wrote: > void *buffer; /* buffer, will be allocated */ > ... > ret = read(fdp, buffer + bytes, stat.st_size - bytes); Pointer arithmetic on a void* is undefined. gcc allows this as an extension, treating void* like char*, i.e. p+i is treated as (void*)((char*)p+i). For portability, define buffer as a char*. > printf("\rcompleted: %i%%", progress); /* NO OUTPUT, UNTIL LOOP ENDED */ > fflush(stdout); > Then i see printf() never output the message until the loop has ended... > 'fdp' is a file descriptor to a local file, i send it through a serial > connection (RS232), Try checking the return value of printf() and fflush(), and errno upon error. Also, what is stdout connected to? A VT? An xterm? sshd? -- Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html