- Subject: Division in loop
- From: Randi Botse <nightdecoder@xxxxxxxxx>
- Date: Tue, 8 Sep 2009 21:40:30 +0700
- List-id: <linux-c-programming.vger.kernel.org>
hi all,
....
int fd, fdp;
unsigned int size;
int progress = 0;
size_t bytes = 0;
void *buffer;
....
/* open fd from a device then create fdp, allocate buffer,, etc. */
while (bytes < size) {
ret = read(fd, buffer + bytes, size - bytes);
if (ret == -1) {
perror("read");
return -1;
}
ret = write(fdp, buffer + bytes, ret);
if (ret == -1) {
perror("write");
return -1;
}
bytes += ret;
progress = (int) ((bytes / size) * 100);
printf("\rcompleted: %i%%", progress);
fflush(stdout);
}
....
I run this loop to receive some data, the printf() seem not updated,
the progress output is
always in it's initial value until the loop was finished. but when i do...
progress = (int) ((bytes / 2) * 100); /* change size to 2 (or random number) */
then it's works... what's wrong here???
--
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
[Linux Assembler]
[Git]
[Kernel List]
[Fedora Development]
[Fedora Announce]
[Autoconf]
[Yosemite Campsites]
[Yosemite News]
[GCC Help]