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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.