On Tue, Sep 08, 2009 at 09:40:30PM +0700, Randi Botse wrote:
> 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);
printf them all and check them:
printf("\rcompleted: %i%% bytes: %d size: %d \n", progress, bytes, size);
> 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
--
--------------------------------
http://zhwen.org - Open and Free
--
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]