Re: Division in loop
Glynn Clements <[email protected]>
| Newsgroups | org.kernel.vger.linux-c-programming |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html